Reg Ex验证器不能在javascript中工作

时间:2015-11-27 09:57:00

标签: javascript regex validation

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时,它失败了。

1 个答案:

答案 0 :(得分:4)

当JavaScript的RegEx引擎解析正则表达式字符串'[\w]:\\.*'时,它会将\w视为转义字符,因为\w没有特殊含义转义字符,仅被视为w

要解决此问题,您需要转义\这样的

var regularExpression = '[\\w]:\\.*';

或者像这样使用RegEx文字

var regularExpression = /[\w]:\.*/;

正如Cyrbil在评论中所指出的,角色类[\w]仅与\w相同。因此,您可以安全地省略\w周围的方括号。