将字符串中任何非字母数字字符的多次出现减少到一个,**不删除**

Reduce multiple occurences of any non-alphanumeric characters in string down to one, **NOT REMOVE**

本文关键字:一个 删除 任何非 字符串 数字字符      更新时间:2023-09-26

我一直在寻找一个解决方案,但我遇到的几乎每一个都是关于用以前已知的字符替换匹配模式。例如:

var str = 'HMQ 2.. Elizabeth';

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

使用反向引用。regex中的'1是指表达式中的第一个匹配组。

var str = 'HMQ 2.. Elizabetttth      .';
var regex = /([^A-Za-z0-9])'1+/g;
var trimmed = str.replace(regex, "$1");
console.log( trimmed );