0

このスニペットを使用して、文字列内の複数の文字を置き換えます。

var badwords = eval("/foo|bar|baz/ig");
var text="foo the bar!";
document.write(text.replace(badwords, "***"));

しかし、置き換えたい文字の 1 つは「/」です。正規表現の予約文字なのでうまくいかないと思いますが、どうすればできますか?

ありがとう!

4

2 に答える 2

4

RegExp で「予約済み」文字をエスケープするだけです。

var re = /abc\/def/;

なんらかの理由で文字列を正規表現として使用し、それを評価しているため、おそらく問題が発生しています...とても奇妙です。

var badwords = /foo|bar|baz/ig;

は、あなたが必要とすることすべてです。

文字列の使用を INISIST にする場合は、エスケープする必要があります。

var badwords = eval( "/foo|ba\\/r|baz/ig" );

これは、JS インタープリターを介してバックスラッシュを取得し、RegExp エンジンに渡します。

于 2011-06-14T19:24:17.757 に答える