29

重複の可能性:
Javascriptの複数の置換
文字列内の「/」のすべての出現箇所をJavaScriptの「_」に置き換えるにはどうすればよいですか?

JavaScriptでは、"11.111.11".replace(".", "")結果は"11111.11"。どうしてそれができるのでしょうか?

Firebugのスクリーンショット:
Firebugのスクリーンショット

4

3 に答える 3

38

ドキュメントからの引用:

グローバル検索と置換を実行するには、正規表現にgスイッチを含めるか、最初のパラメーターが文字列の場合は、flagsパラメーターにgを含めます。注: flags引数はv8 Core(ChromeおよびNode.js)では機能せず、Firefoxから削除されます。

したがって、次のようになります。

"11.111.11".replace(/\./g, '');

このバージョン(編集時点)はFirefoxで動作します...

"11.111.11".replace('.', '', 'g');

...しかし、まさにMDNページに記載されているように、そのサポートはまもなく廃止されます。

于 2012-10-04T14:25:31.083 に答える
9

正規表現とフラグgを使用すると、期待どおりの結果が得られます

"11.111.11".replace(/\./g, "")

次の理由から、正規表現を使用することが重要です。

"11.111.11".replace('.', '', 'g'); // dont' use it!!

標準ではありません

于 2012-10-04T14:26:13.073 に答える
4

まず、replace()はjavascript関数であり、jquery関数ではありません。

上記のコードは、最初に出現する「。」のみを置き換えます。(すべての発生ではありません)。JavaScriptで文字列が出現するたびに置き換えるには、replace()メソッドに、次のように最初のパラメーターとしてグローバル修飾子を使用した正規表現を指定する必要があります。

"11.111.11".replace(/\./g,'')
于 2012-10-04T14:46:07.123 に答える