按 {0}、{1}...{n} 拆分字符串并替换为空字符串
Splitting string by {0}, {1}...{n} and replace with empty string
我有以下字符串:
var text = "Hello world! My name is {0}. How {1} can you be?"
我想找到每个 {n} 并将它们替换为空字符串。我对正则表达式完全没用并试过这个:
text = text.split("/^\{\d+\}$/").join("");
我确定这是一个简单的答案,并且可能已经存在一些关于 SO 的答案,但我不确定要搜索什么。甚至不知道“{”在英语里叫什么。
请(如果可能)继续使用 "split" 和 "join"。
谢谢!
您可以通过 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?'
你可以直接使用replace
方法:
var repl = text.replace(/\{\d+\} */g, '');
//=> "Hello world! My name is . How can you be?"
你很接近。你想要的是:text = text.split(/\{\d+\}/).join("");
您错过的两件事是:
^
= 字符串的开头,$
= 字符串的结尾。由于您尝试匹配的模式周围还有其他字符,因此您不需要这些字符。
- 如果在
split()
方法中使用正则表达式,则需要使用 RegExp
对象,而不是字符串。删除 "
并让表达式以 /
开始和结束将定义一个 RegExp 对象。
我实际上同意其他人的观点,即 replace()
方法是完成您想要完成的事情的更好方法,但是如果您想使用 split()
和 join()
,正如您所说,这就是您需要的更改。
我有以下字符串:
var text = "Hello world! My name is {0}. How {1} can you be?"
我想找到每个 {n} 并将它们替换为空字符串。我对正则表达式完全没用并试过这个:
text = text.split("/^\{\d+\}$/").join("");
我确定这是一个简单的答案,并且可能已经存在一些关于 SO 的答案,但我不确定要搜索什么。甚至不知道“{”在英语里叫什么。
请(如果可能)继续使用 "split" 和 "join"。
谢谢!
您可以通过 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?'
你可以直接使用replace
方法:
var repl = text.replace(/\{\d+\} */g, '');
//=> "Hello world! My name is . How can you be?"
你很接近。你想要的是:text = text.split(/\{\d+\}/).join("");
您错过的两件事是:
^
= 字符串的开头,$
= 字符串的结尾。由于您尝试匹配的模式周围还有其他字符,因此您不需要这些字符。- 如果在
split()
方法中使用正则表达式,则需要使用RegExp
对象,而不是字符串。删除"
并让表达式以/
开始和结束将定义一个 RegExp 对象。
我实际上同意其他人的观点,即 replace()
方法是完成您想要完成的事情的更好方法,但是如果您想使用 split()
和 join()
,正如您所说,这就是您需要的更改。