使用 JavaScript 新正则表达式对象作为包含匹配字符集的括号

using javascript new regexp object for brackets containing set of matching characters

本文关键字:字符集 包含匹 JavaScript 正则表达式 对象 使用      更新时间:2023-09-26

所以看起来我遇到了一个奇怪的问题,想知道是否有人有解决方案,或者我在 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 对象是否与一组匹配字符不兼容?

提前感谢!

第二个"z"应该是"Z"。Z (0x5a) 和 a (0x61) 之间的 ascii 范围包括方括号、插入符号、反引号和下划线。