我有一个标点符号的字符串,我想在所有符号后添加 
。
例如,这个字符串:
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个功能实现此目的?我正在考虑regexp,类似于此:
str.replace([/,!?_],<selection>+" ");
答案 0 :(得分:4)
使用基于捕获组的正则表达式。这会将特殊字符捕获到一个组中。稍后我们可以通过指定组索引编号以及替换部分中的$
符号来引用这些捕获的字符(,如$1
,$2
)。
var s = "Hi there, how are you ? Ok/not_ok !"
alert(s.replace(/([\/,!?_])/g, "$1 "))