<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
。
它有什么问题?
我试图逃避正则表达式中的变量,没有运气。
答案 0 :(得分:3)
您正在搜索文字字符串'/\breviews\b/'
,它不会被视为RegEx。
您需要使用new RegExp
方法。
body.className.match(new RegExp('\\b' + target + '\\b'))
注意:不要将分隔符与new RegExp
一起使用。另请注意,\\b
有2 \
。