ng-pattern不应与提供的模式匹配

时间:2016-01-04 12:36:03

标签: javascript angularjs regex angularjs-ng-pattern

ng-pattern中,我们可以选择指定该字段应与特定模式匹配。

我们如何指定它不应与指定的模式匹配?

实施例,

<input type="text" ng-pattern="/[*|\":<>[\]{}`()';@&$]/" />

在这里,我不希望该字段与模式匹配。相反,如果模式匹配,我想显示错误。

2 个答案:

答案 0 :(得分:2)

你可以使用否定的外观((?!pattern))来否定你的正则表达式:

ng-pattern="/(?![*|\":<>[\]{}`()';@&$])/"

答案 1 :(得分:1)

为了检查一个字符串是否没有某个子字符串,你可以使用string-start-anchored lookahead:

SET sqlquery = 'insert into partial_log 
                      SELECT  a.*, NOW() 
                      FROM itable a 
                      ORDER BY a.LineCode,a.PartNo

请参阅demo

在AngularJS中,如果传递一个RegExp对象(带有分隔符的对象),则该模式不必匹配整个字符串,因此该正则表达式适合当前用途(只需检查条件是真还是假)。 / p>

请注意,也可以使用常用的调和贪婪令牌解决方案/^(?!.*[*|\x22:<>[\]{}`()';@&$])/ (请参阅demo),但由于检查了输入字符串中的每个位置,因此效率较低。

此外,使用^(?:(?![*|\x22:<>\[\]{}`()';@&$]).)*$匹配\x22值中的双引号也很方便。