为了账号安全,请及时绑定邮箱和手机立即绑定

使用美元符号($)替代时的string.replace怪异行为

使用美元符号($)替代时的string.replace怪异行为

噜噜哒 2019-09-27 15:20:52
我在我的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


查看完整回答
反对 回复 2019-09-27
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

痛苦的是,可以说奇数字符串的$替换可以$“四舍五入”。因此(使用Chrome),"1,2,3,4".replace(/,/g, "$$$")给出"1$$2$$3$$4"。也就是说,在这里,一个转义符$加上一个未转义符(即$$$)的行为就像两个转义符($$$$)!使二合一的逃逸模式更加难闻。; ^)

查看完整回答
反对 回复 2019-09-27
  • 3 回答
  • 0 关注
  • 1169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信