我有以下字符串:
var text = "Hello world! My name is {0}. How {1} can you be?"
我想找到每个{n}并用空字符串替换它们。我对正则表达式毫无用处并试过这个:
text = text.split("/^\{\d+\}$/").join("");
我确定这是一个简单的答案,可能已经存在一些答案,但我不知道该搜索什么。甚至不确定" {"用英语叫。
请(如果可能)保持使用" split"和"加入"。
谢谢!
答案 0 :(得分:6)
您可以通过string.replace
函数实现此目的。
string.replace(/\{\d+\}/g, "")
示例:
> var text = "Hello world! My name is {0}. How {1} can you be?"
undefined
> text.replace(/\{\d+\}/g, "")
'Hello world! My name is . How can you be?'
通过string.split
。你只需要移除锚点。 ^
声称我们处在起点,$
声称我们已经结束了。因为一行中不仅存在字符串{num}
,所以正则表达式失败。并删除正则表达式分隔符/
> text.split(/\{\d+\}/).join("");
'Hello world! My name is . How can you be?'
答案 1 :(得分:5)
你很亲密。你想要的是:text = text.split(/\{\d+\}/).join("");
你错过的两件事是:
^
=字符串的开头,$
=字符串的结尾。由于您尝试匹配的模式周围还有其他字符,因此您不需要这些字符。split()
方法中使用正则表达式,则需要使用RegExp
对象,而不是字符串。删除"
并只使表达式以/
开头和结尾将定义一个RegExp对象。我实际上同意其他人认为replace()
方法可以更好地完成您要完成的工作,但如果您想使用split()
和join()
,如你所说,这是你需要的改变。
答案 2 :(得分:3)
你可以使用replace
mehthod:
var repl = text.replace(/\{\d+\} */g, '');
//=> "Hello world! My name is . How can you be?"