![](/img/trans.png)
[英]Javascript 'this' keyword in String.prototype.replace function
[英]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.