Word boundary won't match the beginning or end

2019-02-22 00:51发布

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.

2条回答
啃猪蹄的小仙女
2楼-- · 2019-02-22 01:25

Don't wrap it in quotes... instead, do this:-

'foo'.match(new RegExp(/\bfoo\b/))
查看更多
Emotional °昔
3楼-- · 2019-02-22 01:32

Escape the backslashes

'foo'.match(new RegExp('\\bfoo\\b'));
查看更多
登录 后发表回答