[英]Regular expression - val.replace(/^[^a-zA-Z0-9]*|[^a-zA-Z0-9]*$/g,"'');
[英]val.replace(/[^a-zA-Z_-0-9]/g, '') produce SyntaxError: invalid range in character class
我需要替换与范围a-zA-Z_-0-9
不匹配的所有字符。 所以我做val.replace(/[^a-zA-Z_-0-9]/g, '')
但出现错误。 我该怎么咬? 谢谢
如果要在字符类中包括减号“-”,则必须将其放在范围的末尾:
val.replace(/[^a-zA-Z_0-9-]/g, '')
我更喜欢这个正则表达式:
val.replace(/[^\w-]+/gi, "");
您希望将-
字符解析为文字,但实际上它解析为范围: _-0
表示_
到0
,就像az
表示a
到z
。 但是,由于_
的字符代码比0
,您会得到一个错误。
就您而言,只需将其转义即可: \\-
。 这被解析为-
字符。
您的范围不正确,请删除_
和数字范围之间的-
,然后将其放在结尾或开头。
尝试这个:
val.replace(/[^a-zA-Z_0-9-]/g, '');
您需要转义“-”
val.replace(/[^a-zA-Z_\-0-9]/g, '')
$(this).val($(this).val().replace(/[^a-zA-Z_0-9-]/g, ''));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.