匹配变量(javascript)

时间:2012-12-04 21:11:42

标签: javascript regex

<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

它有什么问题?

我试图逃避正则表达式中的变量,没有运气。

1 个答案:

答案 0 :(得分:3)

您正在搜索文字字符串'/\breviews\b/',它不会被视为RegEx。

您需要使用new RegExp方法。

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

注意:不要将分隔符与new RegExp一起使用。另请注意,\\b有2 \