richiecunningham
richiecunningham

Reputation: 13

Remove all special consecutive characters

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!

Upvotes: 1

Views: 626

Answers (1)

Diego D
Diego D

Reputation: 8163

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);

Upvotes: 1

Related Questions