繁体   English   中英

密码正则表达式中的问题

[英]Issues in password regular expression

大家好,我正在javascript test()方法中制作一个密码正则表达式,它将接受以下输入

/^(?=.*\d)^(?=.*[!#$%'*+\-/=?^_{}|~])(?=.*[A-Z])(?=.*[a-z])\S{8,15}$/gm

  1. 可能包含除空格以外的任何字母

  2. 至少8个字符,但不超过15个字符

  3. 至少接受一个大写字母和一个小写字母

  4. 至少使用一个数字和一个特殊字符

但是我无法使用(句点,点,fullStop)执行以下任务

(点,句号,句号),前提是它不是第一个字符或最后一个字符,并且还不能连续出现两次或多次。

谁能帮我解决这个问题,谢谢

您可以将带有$锚点的\\S{8,15}部分移至正向前移并将其放置为第一个条件(如果整个字符串有空格,或者长度小于8或大于15,则使整个字符串失败)并将该模式​​替换为[^.]+(?:\\.[^.]+)*消耗子模式。

/^(?=\S{8,15}$)(?=.*\d)(?=.*[!#$%'*+\/=?^_{}|~-])(?=.*[A-Z])(?=.*[a-z])[^.]+(?:\.[^.]+)*$/

正则表达式演示

详细资料

  • ^ -字符串的开头
  • (?=\\S{8,15}$) -第一个条件,要求字符串没有空格并且长度为8到15个字符
  • (?=.*\\d) -任何0+字符后必须有一个数字
  • (?=.*[!#$%'*+\\/=?^_{}|~-]) -定义的集合中必须有一个符号,后跟0个字符
  • (?=.*[AZ]) -需要大写ASCII字母
  • (?=.*[az]) -需要小写ASCII字母
  • [^.]+(?:\\.[^.]+)* -除+以外的1个字符. ,后跟0个或多个序列. 后跟一个或多个除点以外的其他字符( 请注意 ,我们不必在这两个取反的字符类中添加\\s因为第一个前瞻已经预先验证了整个字符串及其长度)
  • $ -字符串结尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM