I need to replace all chars which are not match with range a-zA-Z_-0-9
. So I do val.replace(/[^a-zA-Z_-0-9]/g, '')
but get error. How can I bit this?
Thanks
If you want to include the minus sign "-" in the character class, you have to put it into the end of range:
val.replace(/[^a-zA-Z_0-9-]/g, '')
You expect that -
character to be parsed as being literal, but it is in fact parsed as a range: _-0
means _
to 0
, just like a-z
means a
to z
. However, since _
has a higher character code than 0
, you get an error.
In your case, just escape it: \-
. This is parsed as the -
character.
I would prefer this regex:
val.replace(/[^\w-]+/gi, "");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With