Hopefully a simple one but I can't find any exact thread on SO for this particular instance:
If I have a string with multiple special characters in a row i.e 'this-is--a---string'
I want to remove all duplicate non alphanumeric characters with regex so it would end up as 'this-is-a-string'
The closest i've found is .replace(/(.)\1 /g, '$1')
but this removes duplicate letters rather than just special characters.
On a side note if anyone knows how to remove any non alphanumeric characters from the end of a string with regex then that would be really useful too!
Thanks in advance!
CodePudding user response:
Since you want to collapse only repeated non alphanumeric characters, it should be enough to change your regex replacing the .
character class with something that will negate the alphanumeric group [^a-zA-Z0-9]
.
subject = "a---------------bbbbbb6times_______@@@@@@";
var myregexp = /([^a-zA-Z0-9])\1 /mg;
result = subject.replace(myregexp, "$1");
console.log(result);