2

我正在尝试将javascriptreplace()与正则表达式一起使用,以便当它匹配某些字符时:.,!?它会将匹配的字符替换为被空格包围的自身。例如字符串"hello?!?"将变为"hello ? ! ? ".

string.replace()有没有比只为我希望替换的每个字符做一个更好的方法?

我知道我可以用 很容易地选择字符'/[!\?\.]/g',但是让它用它匹配的相同字符替换它让我望而却步。

4

2 回答 2

5

就像添加反向引用一样简单,如下所示:

"hello?!?".replace(/([!?\,\.])/g, ' $1 ');
于 2013-07-10T19:30:23.590 回答
0

如果'/[!\?.]/g'匹配为正则表达式,只需用 () 的 '/([!\?.])/g' 包围它来捕获组

然后使用返回的匹配组来获取你匹配的字符

于 2013-07-10T19:29:22.453 回答