问题
I'm getting unexpected results with this code:
'foo'.match(new RegExp('\bfoo\b')); // Returns null
Why is this returning null
while this one returns "foo"?
'foo'.match(new RegExp('foo')); // Returns "foo"
Doesn't a word boundary marker match the beginning and end as well?
EDIT: I need the regular expression itself to be a string because I am injecting variables into it.
回答1:
Escape the backslashes
'foo'.match(new RegExp('\\bfoo\\b'));
回答2:
Don't wrap it in quotes... instead, do this:-
'foo'.match(new RegExp(/\bfoo\b/))
来源:https://stackoverflow.com/questions/5024623/word-boundary-wont-match-the-beginning-or-end-in-javascript