ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の Replace 関数が置換を最初のインスタンスのみに制限しているのはなぜですか?
JavaScript の Replace 関数が最初のインスタンスのみを置換する理由
JavaScript で replace() を使用すると、のみを置換する状況が発生することがあります。ターゲット文字列の最初のインスタンス。この明らかな矛盾は、関数のデフォルトの動作に起因します。
replace() の動作を理解する
デフォルトでは、replace() は、指定された部分文字列の最初の出現を検索して置換します。文字列内で。すべてのインスタンスを置換する場合は、正規表現で g (グローバル) フラグを指定する必要があります。
例: g フラグの設定
例を考えてみましょう。質問に記載されている内容:
var date = $('#Date').val(); // Gets value "12/31/2009" var id = 'c_' + date.replace("/", ''); // Replaces only the first "/", resulting in "c_1231/2009"
スラッシュ (/) のすべてのインスタンスを置き換えるには、g フラグを使用します:
var id = 'c_' + date.replace(new RegExp("/", "g"), ''); // Replaces all "/" with "", resulting in "c_12312009"
または、より単純な構文を使用できます:
var id = 'c_' + date.replace(/\//g, ''); // Equivalent to the previous line
g フラグを設定すると、正規表現はターゲット文字列のすべての出現と一致し、それらを指定された新しい値に置き換えます。この動作により、すべてのインスタンスが意図したとおりに置き換えられます。
以上がJavaScript の Replace 関数が置換を最初のインスタンスのみに制限しているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。