regularExpression = '[\w]:\\.*';
function validate() {
debugger;
var regex = new RegExp(regularExpression);
var ctrl = document.getElementById('txtValue');
if (regex.test(ctrl.value)) {
return true;
} else {
return false;
}
}
上面是我验证输入目录路径的代码。 Here是验证者网站的链接,显示C:\ or D:\
或D:\Abcd\List.odt
的完美匹配。但是当我尝试运行上面的JavaScript时,它失败了。
答案 0 :(得分:4)
当JavaScript的RegEx引擎解析正则表达式字符串'[\w]:\\.*'
时,它会将\w
视为转义字符,因为\w
没有特殊含义转义字符,仅被视为w
。
要解决此问题,您需要转义\
这样的
var regularExpression = '[\\w]:\\.*';
或者像这样使用RegEx文字
var regularExpression = /[\w]:\.*/;
正如Cyrbil在评论中所指出的,角色类[\w]
仅与\w
相同。因此,您可以安全地省略\w
周围的方括号。