在特殊字符后添加文本

时间:2015-04-17 14:04:18

标签: javascript regex replace

我有一个标点符号的字符串,我想在所有符号后添加 

例如,这个字符串:

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>+"&thinsp;");

1 个答案:

答案 0 :(得分:4)

使用基于捕获组的正则表达式。这会将特殊字符捕获到一个组中。稍后我们可以通过指定组索引编号以及替换部分中的$符号来引用这些捕获的字符(,如$1$2 )。

var s = "Hi there, how are you ? Ok/not_ok !"
alert(s.replace(/([\/,!?_])/g, "$1&thinsp;"))