我想在JS中使用.replace()
函数来替换字符串"{5}"
的所有出现。
我在括号中的字母没有问题,但如果我打电话,数字就不起作用了:
mystring.replace(/{\5}/g,'replaced')
没有任何反应。请问你能用正确的语法帮助我吗?
答案 0 :(得分:3)
看起来你有逃跑的问题。我很确定\ 5是反向引用。你应该转义花括号而不是数字。
'Something {5} another thing'.replace(/\{5\}/g, 'replaced');
// -> Something replaced another thing
附加说明:如果您正在寻找广义字符串格式化解决方案,请查看this SO question并获得一些非常棒的答案。
答案 1 :(得分:2)
是否有一个特殊原因,你在数字前加上反斜杠?如果您的意图是匹配字符串" {5}"," {"和"}"是应该转义的特殊字符,而不是字符" 5"本身!
根据MDN:
非特殊字符前面的反斜杠表示下一个字符是 特别的,不应按字面解释。例如,' b'没有前面的' \通常匹配小写字母“b”,无论它们出现在何处。但是' \ b'本身并不匹配任何角色;它形成了特殊的单词边界字符。
以下代码可行:
var str = "foo{5}bar{5}";
var newStr = str.replace(/\{5\}/g, "_test_");
console.log(newStr); // logs "foo_test_bar_test_"
答案 2 :(得分:1)
试试这个:
mystring.replace(/\{5\}/g,'replaced');
您需要转义大括号\{
和\}
。
<强> 样本 强>