正则表达式不匹配

实现一个8到16位

首字母大写 剩下的至少包含一个数字 一个小写字母

/^[A-Z]{1}(?=.[a-z])(?=.[A-Z])(?=.*d)[^]{7,15}$/

上面是我写的 综合了一下我查到的方法 但是不对

阅读 3.5k
5 个回答

试试:

^[A-Z]{1}(?![0-9]+$)(?![a-zA-Z]+$)(?![1-9A-Z]+$)[0-9A-Za-z]{8,16}$

/^[A-Z](?=.*[0-9].*)(?=.*[a-z].*).{7,15}$/
/^[A-Z](?=.*[a-z])(?=.*[0-9]).{7,15}$/
/^[A-Z](?=.*[a-z])(?=.*\d).{7,15}$/

?= 零宽断言,只是匹配一个位置,并不匹配具体的字符

var reg = /^[A-Z]{1}(?=.*[0-9])(?=.*[a-zA-Z]).{7,15}$/

或者反着来

var reg = /^[A-Z]{1}(?![a-zA-Z]{7,15}$)(?![0-9]{7,15}$).{7,15}$/;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题