有些用户只使用大写编写消息,我希望使用JQuery Validation Engine来避免这种情况。
我尝试了许多正则表达式但没有成功。 以下是自定义规则避免使用10个以上大写字符的想法:
uppercase: {
regex: /^(![A-Z]{10})+$/,
alertText: "* uppercase test alert"
},
我无法弄清楚错误。
答案 0 :(得分:3)
如果您只想允许10个或更少大写字母的字符串,可以使用
/^(?!(?:[^A-Z]*[A-Z]){11})/
请参阅regex demo
模式匹配任何不包含11个或更多ASCII大写字母的字符串(因此,它可能包含0到10个ASCII大写字母)。
<强>详情
^
- 字符串开头(?!(?:[^A-Z]*[A-Z]){11})
- 如果在当前位置的右边,有一个未通过匹配的负面预测
(?:[^A-Z]*[A-Z]){11}
- 11次出现
[^A-Z]*
- 除大写ASCII字母以外的任何0 +字符[A-Z]
- 一个大写的ASCII字母。如果要匹配末尾没有10个大写ASCII字母的字符串:
/^(?!.*[A-Z]{11})/
请参阅regex demo。
<强>详情
^
- 字符串的开头(?!.*[A-Z]{11})
- 如果在除当前位置右侧的换行符之外的任何0+字符之后有11个大写ASCII字母,则表示数学未通过的否定前瞻。