我生成了一个小的正则表达式,它应该检查输入文本是否采用以下格式之一。
甚至使用.
代替:
(即:00.00)。
所以我生成了以下内容:
([01]?[0-9]{1}|2[0-3]{1})\u0020*[:.]\u0020*[0-5]{1}[0-9]{1}
我在这里使用了这个工具:http://regexr.com/,一切似乎都没问题。
现在我通过ng-pattern="..."
在我的角度表达式输入中使用它但是我在控制台中收到以下错误:
Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 25-25 [\] in expression [([01]?[0-9]{1}|2[0-3]{1})\u0020*[:.]\u0020*[0-5]{1}[0-9]{1}].
我做错了什么?
修改
似乎没问题,但是将它与AngularJS一起使用它允许错误的输入,即使我输入:22:2222222 for Angular它是正确的......它发生了什么?
答案 0 :(得分:1)
尝试使用简单空格\u0020
替换。没有必要转义空格字符,并且当将正则表达式作为字符串传递时总是存在危险,因为字符串解释反斜杠而不是正则表达式引擎会出现问题。
答案 1 :(得分:0)
你需要加倍\才能发挥作用:
([01]?[0-9]{1}|2[0-3]{1})\\u0020*[:.]\\u0020*[0-5]{1}[0-9]{1}