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 に答える