我想在使用 javascript 正则表达式时忽略方括号[重复]

2023-12-08

我正在使用 javascript 正则表达式进行一些数据验证并指定我想要接受的字符(我想接受任何字母数字字符、空格和以下内容)!&,'\-如果需要的话,也许还有一些我稍后会添加的)。我的代码是:

var value = userInput;
var pattern = /[^A-z0-9 "!&,'\-]/;
if(patt.test(value) == true) then do something

它工作正常,并排除了我不希望用户输入的字母,除了方括号和插入符号之外。从我读过的所有 javascript 正则表达式教程中,它们都是特殊字符 - 括号表示它们之间的任何字符,在本例中,插入符号表示不在方括号之间的任何字符。我在这里和谷歌上搜索了为什么这些字符也被接受的解释,但找不到解释。

那么任何人都可以帮忙,为什么我的输入接受方括号和插入符号?


原因是您使用的是 A-z 而不是 A-Za-z。 Z (0x5a) 和 a (0x61) 之间的 ascii 范围包括方括号、脱字号、反引号和下划线。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我想在使用 javascript 正则表达式时忽略方括号[重复] 的相关文章