如何在RegExp对象中使用单词边界

时间:2012-06-11 02:47:03

标签: javascript regex word-boundary

我想知道的是如何在RegExp对象中使用单词边界。

例如:

var reg = new RegExp("\bAB\b", "g");

这不起作用,我不能这样做:

var reg = /\bAB\b/g;

因为稍后我需要用变量替换AB。

我知道RegExp对象中的所有其他功能都有效,但由于某种原因,单词边界不起作用。感谢您对此问题的任何帮助。 :)

示例:http://jsfiddle.net/7Kt5A/1/

2 个答案:

答案 0 :(得分:5)

使用反斜杠转义反斜杠,因此\b不会被解释为转义字符,而是字面\b

var reg = new RegExp("\\bAB\\b", "g");
reg.test(' AB ');
// true
reg.test('aABb');
// false

答案 1 :(得分:3)

你只需要几个额外的反斜杠

var reg = new RegExp("\\bAB\\b", "g");

因为它是一个字符串,并且反斜杠会转义后续字符,所以你必须自己转义反斜杠。