このPHPの質問に答えて:regex - preg_replace string、私はJavascriptで何かを理解できませんでした。 を考えると、次の
var s = "abc1!?d$";
alert(s.replace(/\W+/, " "));
私は警告しています:
abc d$
は、なぜそれが最後のドルをストリッピングされていませんか?
このPHPの質問に答えて:regex - preg_replace string、私はJavascriptで何かを理解できませんでした。 を考えると、次の
var s = "abc1!?d$";
alert(s.replace(/\W+/, " "));
私は警告しています:
abc d$
は、なぜそれが最後のドルをストリッピングされていませんか?
介在する単語文字があるためです。これを試してください:
alert(s.replace(/\W+/g, ' '));
正規表現に「g」というサフィックスがないと、1回の置換だけが行われます。それは "!?"途中で "d"はシーケンスを終了します。
matcherで(g)lobalフラグを使用していないので、最初のの連続したシーケンスの単語以外の文字に一致します。
次はあなたが期待する結果を与える必要があります。
var s = "abc1!?d$";
alert(s.replace(/\W+/g, " "));
にピタッと、それは 'G'フラグの不在です。 –
Aha!ブリリアント。ありがとう –