このスニペットを使用して、文字列内の複数の文字を置き換えます。
var badwords = eval("/foo|bar|baz/ig");
var text="foo the bar!";
document.write(text.replace(badwords, "***"));
しかし、置き換えたい文字の 1 つは「/」です。正規表現の予約文字なのでうまくいかないと思いますが、どうすればできますか?
ありがとう!
このスニペットを使用して、文字列内の複数の文字を置き換えます。
var badwords = eval("/foo|bar|baz/ig");
var text="foo the bar!";
document.write(text.replace(badwords, "***"));
しかし、置き換えたい文字の 1 つは「/」です。正規表現の予約文字なのでうまくいかないと思いますが、どうすればできますか?
ありがとう!
RegExp で「予約済み」文字をエスケープするだけです。
var re = /abc\/def/;
なんらかの理由で文字列を正規表現として使用し、それを評価しているため、おそらく問題が発生しています...とても奇妙です。
var badwords = /foo|bar|baz/ig;
は、あなたが必要とすることすべてです。
文字列の使用を INISIST にする場合は、エスケープする必要があります。
var badwords = eval( "/foo|ba\\/r|baz/ig" );
これは、JS インタープリターを介してバックスラッシュを取得し、RegExp エンジンに渡します。