删除所有特殊的连续字符

Remove all special consecutive characters

希望是一个简单的,但我找不到关于这个特定实例的任何确切线程:

如果我有一个连续包含多个特殊字符的字符串,即 'this-is--a---string' 我想用正则表达式删除所有重复的非字母数字字符,这样它最终会变成 'this-is-a-string'

我找到的最接近的是 .replace(/(.)+/g, ''),但这会删除重复的字母,而不仅仅是特殊字符。

附带说明一下,如果有人知道如何使用正则表达式从字符串末尾删除任何非字母数字字符,那也将非常有用!

提前致谢!

由于您只想折叠重复的非字母数字字符,因此更改您的正则表达式就足够了,将 . 字符 class 替换为会否定字母数字组 [^a-zA-Z0-9] 的内容.

subject = "a---------------bbbbbb6times_______@@@@@@";

var myregexp = /([^a-zA-Z0-9])+/mg;
result = subject.replace(myregexp, "");

console.log(result);