ng-pattern给出"Lexer错误"?

ds0*_*591 8 javascript regex angularjs

作为输入元素的属性,我有:

ng-pattern="^\d{5}(?:[-\s]\d{4})?$"
Run Code Online (Sandbox Code Playgroud)

这个表达方式错了吗?

我收到此错误:

Lexer Error: Unexpected next character  at columns 0-0 [^] in expression [^\d{5}(?:[-\s]\d{4})?$].
Run Code Online (Sandbox Code Playgroud)

Alb*_*.J. 28

尝试在标志/之前^和之后添加$.

例如

ng-pattern="/^\d{5}(?:[-\s]\d{4})?$/"
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!

  • 没人能解释为什么正则表达式有效. (23认同)

Eng*_*eer 5

默认情况下,angularjs用^$符号包装正则表达式.删除那些.

来自代码的片段:

var f, g = d.ngPattern || d.pattern;
d.$observe("pattern", function(a) {
     C(a) && 0 < a.length && (a = new RegExp("^" + a + "$"));
Run Code Online (Sandbox Code Playgroud)