ng模式不应与提供的模式匹配
ng-pattern should not match supplied pattern
在ng-pattern
中,我们可以选择指定字段应与特定模式匹配。
我们如何指定它不应该与指定的模式匹配?
示例,
<input type="text" ng-pattern="/[*|'":<>[']{}`()';@&$]/" />
在这里,我不希望字段与模式匹配。相反,如果模式匹配,我想显示错误。
您可以使用负环视((?!pattern)
)来否定正则表达式:
ng-pattern="/(?![*|'":<>[']{}`()';@&$])/"
为了检查字符串是否没有子字符串,可以使用字符串开始锚定前瞻:
/^(?!.*[*|'x22:<>[']{}`()';@&$])/
参见演示
在AngularJS中,如果传递RegExp对象(带有分隔符的对象),则模式不必与整个字符串匹配,因此此regex非常适合当前用途(只需检查条件是true还是false)。
请注意,也可以使用常用的调和贪婪令牌解决方案^(?:(?![*|'x22:<>'[']{}`()';@&$]).)*$
(请参阅演示),但由于输入字符串中的每个位置都被检查,因此效率较低。
此外,使用'x22
可以方便地匹配ng-pattern
值中的双引号。
相关文章:
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- 正则表达式匹配模式或匹配其他所有内容 - 匹配优先级问题
- Javascript重复模式匹配,然后输出到文本区域
- youtube视频的正则表达式匹配模式可以以非贪婪的方式完成吗
- 我可以禁用参数模式匹配吗
- JavaScript测验的模式匹配
- RegEx模式匹配101-999
- 使用 Karma,如何排除与模式匹配的所有文件,但特定子文件夹中的文件除外
- 如何使用lodash返回与模式匹配的属性数组
- Regex模式匹配连接
- 任何匹配模式的方法,要么在某个字符之前,要么在某个字符之后
- 正则表达式模式匹配特定单词
- 查找具有与模式匹配的属性的元素
- 用于匹配模式中上一个组的正则表达式
- 在无类型语言中是否存在模式匹配之类的东西
- JavaScript REGEX 模式匹配
- 模式匹配检查范围之间的邮政编码
- gulp.src 排除与模式匹配的所有文件,除了一个 - 不工作
- 忽略模糊匹配并使用 JavaScript 添加精确的单词模式匹配