「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScript の Replace 関数が置換を最初のインスタンスのみに制限しているのはなぜですか?

JavaScript の Replace 関数が置換を最初のインスタンスのみに制限しているのはなぜですか?

2024 年 11 月 11 日に公開
ブラウズ:223

Why Does JavaScript\'s Replace Function Limit Replacements to the First Instance Only?

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 flag:

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 フラグを設定すると、正規表現はターゲット文字列のすべての出現と一致し、指定された新しい値で置き換えられます。この動作により、すべてのインスタンスが意図したとおりに置き換えられます。

リリースステートメント この記事は次の場所に転載されています: 1729641438 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3