JavaScript Replace が最初のインスタンスのみを置換する理由: RegExp フラグの探索
JavaScript の replace メソッドを使用して文字列を検索して別の文字列に置換する場合を実行すると、ターゲット文字列の最初のインスタンスのみが置換されるという動作が発生する可能性があります。この現象は、置換のデフォルトの動作が単一の非グローバル検索および置換操作を実行するために発生します。
グローバル置換: RegExp Flag
すべてを置換するには文字列内のターゲット文字列のインスタンスを置換するには、replace メソッドで使用される正規表現で「グローバル」フラグ (g) を指定する必要があります。このフラグは、文字列全体にわたって検索と置換操作を実行し、ターゲット文字列が出現するたびに置換する必要があることを示します。
たとえば、コード内では次のようになります。
var date = $('#Date').val(); // e.g., "12/31/2009"
var id = 'c_' date.replace("/", ''); // c_1231/2009 (wrong)
「/」文字のすべての出現を置き換えるには、「グローバル」フラグを指定する必要があります:
var id = 'c_' date.replace(new RegExp("/", "g"), ''); // c_12312009 (correct)
代わりに、より短い構文を使用することもできます:
var id = 'c_' date.replace(/\//g, ''); // c_12312009 (correct)
「グローバル」フラグを指定すると、replace メソッドは日付文字列内のすべてのスラッシュ文字を置換し、正しい出力が得られます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3