替换js中包含数字的文本

时间:2014-05-04 21:45:10

标签: javascript regex

我想在JS中使用.replace()函数来替换字符串"{5}"的所有出现。

我在括号中的字母没有问题,但如果我打电话,数字就不起作用了:

mystring.replace(/{\5}/g,'replaced')
没有任何反应。请问你能用正确的语法帮助我吗?

3 个答案:

答案 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');

您需要转义大括号\{\}

<强> 样本

http://jsfiddle.net/tuga/Gnsq3/