对于Angular应用程序中的验证,我正在尝试确保输入值以字符串“ism”结束,所以我正在使用
ng-pattern="\b\w+(ism\b)"
但是,当表达式不匹配时,这不会触发输入的$ invalid,而且
也不会ng-pattern="ism$".
我在控制台中收到一条错误消息,似乎是说它不喜欢输入的表达式:
Error: [$parse:lexerr]
http://errors.angularjs.org/1.3.15/$parse/lexerrp0=Unexpected
%20nextharacter%20&p1=s%200-0%20%5B%5C%5D&p2=%5Cb%5Cw%2B(ism%5Cb)...
答案 0 :(得分:1)
如果我能理解你需要这样的东西ng-pattern="/ism$/"
:
<form name="myform">
<input type="text" name="test" ng-model="test" ng-pattern="/ism$/" />
<span ng-show="myform.test.$error.pattern">Not valid pattern!</span>
</form>
答案 1 :(得分:1)
谢谢Michelem,就是这样。为了澄清其他人的答案,我没有意识到ng-pattern值需要起始和结束正斜杠,这就是问题所在。我最终使用了ng-pattern =&#34; /.* ism $ /&#34;,但是&#34; / \ b \ w +(ism \ b)/&#34;和#34; / ism $ /&#34;。
一样有效如果将ng-pattern值指定为RegExp对象,则不需要正斜杠,例如,ng-pattern =&#34; new RegExp(&#39;。* ism $&#39; )&#34 ;.将RegExp放入$ scope变量可能会更好,如果它将被多次使用。