繁体   English   中英

val.replace(/ [^ a-zA-Z_-0-9] / g,'')产生SyntaxError:字符类中的范围无效

[英]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表示az 但是,由于_的字符代码比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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM