文字列の replace() メソッドを理解する
プログラミングでは、replace() メソッドを使用して、特定の部分文字列を別の文字列に置き換えることができます。指定された文字列。最近、ユーザーがスマート クオートと登録されたシンボルを通常のものに置き換えようとしたときに問題が発生しました。
ユーザーは次のコードを使用しました:
str.replace(/[“”]/g, '"'); str.replace(/[‘’]/g, "'");
しかし、このコードは生成できませんでした。望ましい結果。これは、JavaScript では文字列が不変であるためです。 replace() メソッドは、元の文字列を変更せずに新しい文字列を生成します。
解決策:
スマート クオートと記号を正しく置換するには、コードを変更する必要があります。次のように:
str = str.replace(/[“”]/g, '"'); str = str.replace(/[‘’]/g, "'");
または、単一のステートメントで同じことを達成できます。結果:
str = str.replace(/[“”]/g, '"').replace(/[‘’]/g,"'");
新しい文字列を元の変数に割り当てると、元の文字列が変更された文字列で効果的に上書きされます。
追加メモ:
コードでは文字の UTF-16 エンコーディングを前提としていることに注意することが重要です。文字列に基本多言語面外の文字 (スマート引用符や登録済み記号が含まれる) が含まれている場合、正しい一致を保証するために Unicode フラグ (u) を指定する必要がある場合があります。
以上がJavaScript の「replace()」メソッドで文字列が変更されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。