JavaScript の replace() メソッドがパターンの最初のインスタンスのみを置き換えることがあるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-10-23 07:55:29
オリジナル
133 人が閲覧しました

Why Does JavaScript's replace() Method Sometimes Replace Only the First Instance of a Pattern?

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!