Replace を使用した JavaScript の選択的置換を理解する
JavaScript の replace() メソッドを使用して文字列を操作する場合、多くの場合、置換のみが行われることに気づいたかもしれません。指定された文字またはパターンの最初のインスタンス。この動作は、特にすべてのインスタンスを置換する場合には、不可解になる可能性があります。
例:
次のコード スニペットを考えてみましょう:
var date = $('#Date').val(); // "12/31/2009" var id = 'c_' + date.replace("/", ''); // "c_1231/2009"
お気づきのとおり、置換では / 文字の最初のインスタンスのみが削除され、2 番目のインスタンスは変更されません。その理由を理解するには、replace() メソッドの仕組みを詳しく調べる必要があります。
RegExp とグローバル フラグ:
replace() は正規表現 (RegExp) を使用します。 ) 文字列内でターゲット パターンを見つけます。デフォルトでは、最初に出現したもののみと一致します。すべてのインスタンスを置換するには、「g」修飾子を使用してグローバル フラグを指定する必要があります。
グローバルに置換する方法:
グローバル フラグを適用するには 2 つの方法があります。 flag:
正規表現での g フラグの使用:
var id = 'c_' + date.replace(new RegExp("/", "g"), '');
replace() の 2 番目の引数として g フラグを使用:
var id = 'c_' + date.replace(/\//g, '');
両方のメソッドは、次のように、指定された文字またはパターンのすべてのインスタンスを検索して置換するよう replace() に指示します。
var id = 'c_' + date.replace(/\//g, ''); // "c_12312009"
以上がJavaScript の replace() メソッドがパターンの最初のインスタンスのみを置き換えることがあるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。