正则表达式,用于最少1个字符和1个数字,防止连续4个数字和字符且最小长度为8

时间:2019-01-11 12:56:23

标签: regex

我要为

创建正则表达式
  • 密码中至少包含1个字符和1个数字
  • 防止“ 4个连续字符”也必须到位。例如: 1234,abcd
  • 最少8个字符,最大20个字符

我尝试过:

^(?!.*(.)\1\1)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,20}$

^(?!.*?(?:0(?:12|98)|123|234|3(?:45|21)|4(?:56|32)|5(?:67|43)|6(?:78|54)|7(?:89|65)|876|987))(?!.*?(.)\\1{2})[0-9]{8}$

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$

^(?=.*[0-9])(?=.*[a-zA-Z])(?=\S+$).{8,20}$

但是不能在一个正则表达式中得到结果。如果有人对此有想法,请帮助我。预先感谢!

1 个答案:

答案 0 :(得分:0)

我认为正则表达式不是此处工作的正确工具。

正则表达式引擎没有任何字母数字字符自然排序的概念,因此实际上不可能以简洁的方式做到这一点。

可以检查并排除包含以下内容的结果:

abcd | bcde | cdef | defg | efgh | fghi | ghij | hijk | ijkl | jklm | klmn | lmno | mnop | nopq | opqr | pqrs | qrst | rstu | stuv | tuvw | uvwx | vwxy | wxyz | 0123 | 1234 | 2345 | 3456 | 4567 | 5678 | 6789

但是您绝对不应该。