reactjs 正则表达式验证

zpjtge22  于 2022-12-29  发布在  React
关注(0)|答案(2)|浏览(199)

最少3个字符,全部小写,最多可使用2个数字,不允许使用特殊字符。我尝试使用^[a-zA-Z 0 -9]*$,但无法限制使用的数字
谁能帮帮我。

nbysray5

nbysray51#

您可以使用负的前瞻Assert来排除3位以上的数字:

/^(?!(?:.*\d+){3,})[a-z0-9]{3,}$/

下面是对该模式的解释:

  • ^从字符串的开头开始
  • (?!(?:.*\d+){3,})Assert不出现3个或更多数字
  • [a-z0-9]{3,}则匹配3个或更多小写字母或数字
  • $字符串结尾

这是一个可以正常工作的demo

jjhzyzn0

jjhzyzn02#

如果至少有3个允许的字符,则可以使用check,然后匹配0、1或2个数字。

^(?=[A-Za-z\d]{3})[A-Za-z]*(?:\d[A-Za-z]*){0,2}$
    • 说明**
  • ^字符串开始
  • (?=[A-Za-z\d]{3})正前视,Assert3个允许的字符
  • [A-Za-z]*匹配可选字符A-Za-z
  • (?:\d[A-Za-z]*){0,2}重复0 - 2次匹配单个数字和可选字符A-Za-z
  • $字符串结束

查看regex101上的匹配项。

相关问题