我一直在寻找一种解决方案,但遇到的几乎每个解决方案都是将匹配的图案替换为以前已知的字符。
例如:

var str = 'HMQ 2.. Elizabeth';


我们如何捕获字符串中该点的多次出现并将其替换为一个?而且它也不是特定于点的,而是任何我们不知道的非字母数字字符。谢谢。

最佳答案

使用反向引用。正则表达式中的\1引用表达式中的第一个匹配组。



var str = 'HMQ 2.. Elizabetttth      .';

var regex = /([^A-Za-z0-9])\1+/g;

var trimmed = str.replace(regex, "$1");
console.log( trimmed );

关于javascript - 将字符串中多次出现的任何非字母数字字符减少到一个,**不删除**,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30360171/

10-12 00:10
查看更多