我在我的JavaScript代码中发现了一个错误,该错误已隔离为以我意想不到的方式起作用的字符串替换。这是代码示例:var text = "as";text = text.replace(text,"$\'");console.log(text);这会将一个空字符串输出到控制台。我期望它在控制台上打印$'。谁能解释一下?
3 回答
慕森卡
TA贡献1806条经验 获得超8个赞
如果我不知道替换字符串中的内容,我会使用
replaceWith = "might have 2 $ signs $$ $$$ $$$$"
"a b c".replace("b", replaceWith) // unexpected result
"a b c".replace("b", function(){return replaceWith}) // no surprises
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
痛苦的是,可以说奇数字符串的$
替换可以$
“四舍五入”。因此(使用Chrome),"1,2,3,4".replace(/,/g, "$$$")
给出"1$$2$$3$$4"
。也就是说,在这里,一个转义符$
加上一个未转义符(即$$$
)的行为就像两个转义符($$$$
)!使二合一的逃逸模式更加难闻。; ^)
添加回答
举报
0/150
提交
取消