我们ng-pattern
可以选择指定该字段应与特定模式匹配。
我们如何指定它不应该匹配指定的模式?
例子,
<input type="text" ng-pattern="/[*|\":<>[\]{}`()';@&$]/" />
在这里,我不希望该字段与模式匹配。相反,如果模式匹配,我想显示错误。
我们ng-pattern
可以选择指定该字段应与特定模式匹配。
我们如何指定它不应该匹配指定的模式?
例子,
<input type="text" ng-pattern="/[*|\":<>[\]{}`()';@&$]/" />
在这里,我不希望该字段与模式匹配。相反,如果模式匹配,我想显示错误。
您可以使用否定环视 ( (?!pattern)
) 来否定您的正则表达式:
ng-pattern="/(?![*|\":<>[\]{}`()';@&$])/"
为了检查一个字符串是否没有一些子字符串,你可以使用一个字符串开始锚定的前瞻:
/^(?!.*[*|\x22:<>[\]{}`()';@&$])/
看演示
在 AngularJS 中,如果传递了 RegExp 对象(带有分隔符的对象),则模式不必匹配整个字符串,因此该正则表达式非常适合当前目的(只需检查条件是真还是假)。
请注意,也可以使用常用的缓和贪婪令牌解决方案^(?:(?![*|\x22:<>\[\]{}`()';@&$]).)*$
(参见演示),但由于检查输入字符串中的每个位置,因此效率较低。
\x22
此外,使用匹配值中的双引号也很方便ng-pattern
。