使用jQuery Validation Engine避免使用大写输入

时间:2018-03-02 13:31:06

标签: regex regex-negation jquery-validation-engine

有些用户只使用大写编写消息,我希望使用JQuery Validation Engine来避免这种情况。

我尝试了许多正则表达式但没有成功。 以下是自定义规则避免使用10个以上大写字符的想法:

uppercase: {
   regex: /^(![A-Z]{10})+$/,
   alertText: "* uppercase test alert"
},

我无法弄清楚错误。

1 个答案:

答案 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字母,则表示数学未通过的否定前瞻。