ホームページ >ウェブフロントエンド >jsチュートリアル >ドル記号 ($) を含む `String.replace()` が空の文字列になるのはなぜですか?
String.replace() ドル記号 ($) 置換による奇妙
JavaScript で文字列置換を使用すると、次のような奇妙な動作が発生する可能性があります。ドル記号 ($) 文字。次のコード スニペットを考えてみましょう:
<code class="javascript">var text = "as"; text = text.replace(text,"$\'"); console.log(text);</code>
驚くべきことに、このコードは空の文字列を出力します。私たちの当初の期待は、$' が出力されることでした。この予期せぬ結果は何で説明されますか?
その答えは、JavaScript の正規表現と文字列置換メソッドにおける $ の特別な重要性にあります。このコンテキストでは、$ は文字列の終わりを示します。これは、リテラル文字としての通常の役割をオーバーライドする特別な動作です。
置換文字列で $ を実際の文字として使用するには、次を使用してエスケープする必要があります。 $$。コードを次のように変更すると、意図した出力が得られます。
<code class="javascript">var text = "as"; text = text.replace(text, "$$\'"); console.log(text);</code>
この更新されたコードは、$' をコンソールに正しく出力し、正規表現のリテラル文字として $ が適切に使用されることを示しています。
以上がドル記号 ($) を含む `String.replace()` が空の文字列になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。