簡體   English   中英

JavaScript String.replace() 中的錯誤與替換字符串“$'”?

[英]Bug in JavaScript String.replace() with replace string "$'"?

在 Chrome Web Inspector 中嘗試以下代碼:

> "foo".replace("foo", "$'"); // dollar sign followed by single quote
< "" // wtf

您需要使用$$因為$用於引用組

 var replaced = "foo".replace("foo", "$$'"); snippet.log(replaced);
 <!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> <script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

參考

$$ 插入一個“$”。

我現在使用的替代方案是

"foo".split("foo").join("$'")

看起來不錯,$ 符號應該包含數字或整數或浮點值,例如 $120'...

var res = str.replace("foo", "$1000'");

上面的解釋有些不完整。

string.replace的第二個參數是一個替換函數。 當您提供一個字符串作為第二個參數時,它會被傳遞給默認替換函數,該函數解釋字符串並用匹配的子字符串替換$ 它還將$1$2等替換為您可能在匹配表達式中定義的任何捕獲。

在 OP 的情況下,他不想要默認替換器。 他想要一個簡單地返回字符串的替換函數:

() => "leave my $ alone";

因此,這段代碼

console.log("replace foo with dollar".replace("foo", () => "$"));

將返回

replace $ with dollar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM