ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の「replace()」メソッドで文字列が変更されないのはなぜですか?

JavaScript の「replace()」メソッドで文字列が変更されないのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-31 16:04:17
オリジナル
541 人が閲覧しました

Why Doesn't My JavaScript `replace()` Method Change My String?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート