在输入框使用ng-pattern
时,我遇到了词法分析器错误。
我的正则表达式是用来测试电话号码的,在输入框中它看起来像这样:
<input
type="text"
class="phone"
ng-pattern="(\(?([0-9]{3})\)?)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})"
placeholder="Phone Number" ng-model="contactFormVM.contact.phone"
required />
然后Angular向我发出警告,并给了我这个错误:
Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 1-1 [\] in expression [(\(?([0-9]{3})\)?)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})].
现在我可以看到它对我的
\
感到生气。但是我不知道如何在不转义它的情况下编写正则表达式。有趣的是,测试实际上有效并且正确验证,但我讨厌无缘无故地抛出错误。有任何想法为什么会发生这种情况吗?
谢谢
ng-pattern=/(\(...\))/
或者ng-pattern=(\(...\))
? - Aprillionng-pattern="(\\(?([0-9]{3})\\)?)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})"
,但我仍然遇到完全相同的错误:Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 1-1 [\] in expression [(\\(?([0-9]{3})\\)?)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})].
- Spittal