[英]Issues in password regular expression
大家好,我正在javascript test()方法中制作一个密码正则表达式,它将接受以下输入
解
/^(?=.*\d)^(?=.*[!#$%'*+\-/=?^_{}|~])(?=.*[A-Z])(?=.*[a-z])\S{8,15}$/gm
可能包含除空格以外的任何字母
至少8个字符,但不超过15个字符
至少接受一个大写字母和一个小写字母
至少使用一个数字和一个特殊字符
但是我无法使用(句点,点,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.