regex - JavaScript RegExp Special Characters -
the following method highlights substrings of large string. want support special character *
represents string of length. example, if *
inputted in search text field, whole loaded text file should highlighted. when input becomes *a
, words end 'a' should highlighted. 'a' matches words contain a
. however, @ moment *
character not picked up. can fix problem? in advance..
function search() { var hid = document.getelementbyid('hidtxt').value; if(hid.length == 0) hid.value=document.getelementbyid("input").innerhtml; var text = document.getelementbyid("searchtext").value; if (!text) return; var regex = new regexp(text, 'gi'); document.getelementbyid("input").innerhtml = hid.replace(regex, '<span style="background-color:yellow;">$&</span>'); }
i don't think can make such straightforward translation of input field regex.
the asterisk on own won't match has .*
valid regex.
other cases more complex, e.g. input string blah bla bl bla *837465jfbnrja
.*a
match whole string while after bla
bla
, *837465jfbnrja
separate matches (as mention highlighting words)
to make work regex need non-greedy matching of not whitespace character:
\b(?:[^\s])*?a\b
try combinations out here , you'll idea:
you'd need come fixed set of rules want allow, can prepare translation of allowed special characters regex make work.
Comments
Post a Comment