1

不欠任何人任何东西

> str.replace(/\bno\b/g, 'yes');
'Owe yes one anything to another'

> str.replace(new RegExp('\bno\b','g'),'yes');
'Owe no one anything to another'

为什么在这种情况下使用 RegExp 不起作用?我需要使用它,以便我可以

var regex = new RegExp('\b'+ **myterm** +'\b','g');  or
var regex = new RegExp('(^|\s)'+ **myterm** +'(?=\s|$)','g');
4

2 回答 2

2

以这种方式使用 RegExp 字符串时,您需要转义反斜杠:

str.replace(new RegExp('\\bno\\b', 'g'), 'yes');
于 2012-06-26T17:12:33.267 回答
0

显然\b必须逃脱,例如,

new Regexp('\\b' + **myterm** + '\\b');
于 2012-06-26T17:12:09.570 回答