我有一个标点符号的字符串,我想在所有符号后添加 
。
例如,以下字符串:
Hi there, how are you ? Ok/not_ok !
我希望它会变成这样:
Hi there,  how are you ?  Ok/ not_ ok ! 
我在考虑replace函数,但是我需要为所有符号多次调用它。
str.replace("/","/ ");
str.replace(",",", ");
str.replace("!","! ");
str.replace("?","? ");
str.replace("_","_ ");
是否有仅使用1个函数来实现此目的的简便方法?我在考虑正则表达式,类似于以下内容:
str.replace([/,!?_],<selection>+" ");
最佳答案
使用基于捕获组的正则表达式。这会将特殊字符捕获到一个组中。稍后,我们可以通过在替换部分中指定组索引号和$
符号来引用那些捕获的字符(例如$1
,$2
)。
var s = "Hi there, how are you ? Ok/not_ok !"
alert(s.replace(/([\/,!?_])/g, "$1 "))