【问题标题】:Avoid uppercase input with jQuery Validation Engine使用 jQuery 验证引擎避免大写输入
【发布时间】:2018-03-02 13:31:05
【问题描述】:
有些用户只用大写写他们的消息,我想用 JQuery Validation Engine 避免这种情况。
我尝试了很多正则表达式,但都没有成功。
以下是避免超过 10 个大写字符的自定义规则的想法:
uppercase: {
regex: /^(![A-Z]{10})+$/,
alertText: "* uppercase test alert"
},
我不知道出了什么问题。
【问题讨论】:
标签:
regex
regex-negation
jquery-validation-engine
【解决方案1】:
如果您只想允许包含 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 字母,则计算失败的负前瞻。