3
<body class="reviews"></body>

var body = document.body;
var target = 'reviews';

if (body.className.match('/\b' + target + '\b/'))
    console.log(true);
else
    console.log(false);

此代码返回false. 但如果我使用body.className.match(/\breviews\b/)它返回true.

它出什么问题了?

我试图在正则表达式中转义一个变量,但没有运气。

4

1 回答 1

3

您正在搜索文字字符串'/\breviews\b/',它不会被读取为正则表达式。

您需要使用该new RegExp方法。

body.className.match(new RegExp('\\b' + target + '\\b'))

注意:请勿将分隔符与new RegExp. 另外,请注意\\b有 2 \

于 2012-12-04T21:13:44.187 回答