簡體   English   中英

javascript - 更好的方法來逃避String.prototype.replace使用的字符串中的美元符號

[英]javascript - Better Way to Escape Dollar Signs in the String Used By String.prototype.replace

我想用另一個字符串替換字符串。 我發現當replaceValue包含"$" ,替換將失敗。 所以我試圖先用"$$"來逃避"$" 代碼如下所示:

var str = ..., reg = ...;
function replaceString(replaceValue) {
  str.replace(reg, replaceValue.replace(/\$/g, '$$$$'));
}

但我覺得它很難看,因為我需要寫4美元符號。

我還需要逃避任何其他角色嗎? 有沒有更好的方法來做到這一點?

有一種方法可以調用replace ,讓我們不用擔心逃避任何事情。

var str = ..., reg = ...;
function replaceString(replaceValue) {
  return str.replace(reg, function () { return replaceValue });
}

您轉義替換字符串的方法是正確的。

根據ECMAScript規范版本5.1的 15.5.4.11 String.prototype.replace,所有特殊替換序列都以$$&$`$'$n$nn )開頭, $$在替換中指定一個$

因此,如果替換文本是按字面意思處理的話,就像現在正在做的那樣,以雙$$來逃避所有$就足夠了。

就我所見,沒有其他簡潔的方法可以進行替換。

不幸的是,你無能為力。
這就是JavaScript如何使用正則表達式。

這是一篇很好的文章,列出了你應該注意的所有替換模式: http//es5.github.io/#x15.5.4.11

暫無
暫無

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

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