2015-10-18 44 views
0

对于验证,我试图确保输入值与字符串“ISM”结尾,所以我使用简单纳克表达不工作

ng-pattern="\b\w+(ism\b)" 

这没有触发对于当表达式不匹配然而,既不输入$无效是

ng-pattern="ism$". 

我在控制台中,这似乎是说,它不喜欢表达收到错误消息(S )键入:

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)... 
+1

请将足够的代码添加到问题以允许复制此问题。 – buzzsaw

回答

1

如果我能理解你需要像这样ng-pattern="/ism$/"

JSFiddle

<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

感谢Michelem,仅此而已。为了澄清他人的答案,我没有意识到ng-pattern值需要开始和结束正斜杠,这就是问题所在。我最终使用了ng-pattern =“/.* ism $ /”,但“/ \ b \ w +(ism \ b)/”的作用与“/ ism $ /”一样。

如果将ng样式值指定为RegExp对象,例如ng-pattern =“new RegExp('。* ism $')”,则不需要正斜杠。如果将要使用多次,那么将该RegExp放入$ scope变量中可能会更好。