所以看起来我遇到了一个奇怪的问题,想知道是否有人有解决方案,或者我是否在 javascript 中滥用了 RegExp 对象。我写了一个正则表达式,它检查一个特定的值是否是字母数字。功能和一些示例测试用例如下
var re = new RegExp("^[a-zA-z\\d]+$");
document.writeln(re.test("a"));
document.writeln(re.test("a1234"));
document.writeln(re.test("12345a"));
document.writeln(re.test("12345"));
document.writeln(re.test("a["));
document.writeln(re.test("[]"));
document.writeln(re.test("]"));
在所有情况下,它都会返回 true。我尝试转义常规 exp 中的括号,var re = new RegExp("^\\[a-zA-z\\d\\]+$");
但随后每个测试用例都返回 false。
我通过使用正则表达式文字而不是像var re = /^[a-zA-Z\d]+$/;
. 我想我可以使用\w
,但该字段不应包含该_
字符。
有人知道如何解决这个问题,或者 RegExp 对象与一组匹配字符不兼容吗?
提前致谢!