RegEx至少包含英语字母(大写或小写)、数字和特殊字符(不允许使用韩文字母)之一[已关闭]

vuktfyat  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(135)

15小时前关门了。
Improve this question
我正在尝试使用regEx作为密码。(JavaScript)

  • [更新]*
    • 正则表达式要求**
  • 必须是6 - 18个字符组成的英文字母(大写或小写),数字和特殊字符.(至少每一个)
  • 必须以字母开头。
  • 字母、数字和特殊字符的顺序无关紧要。
  • 不允许使用韩文字母。
^(?=.*[0-9])(?=.*[-a-zA-Z])(?=.*[`~@#!$%^&+=_-]){8,16}.*$

在下列情况下,这不应通过测试。
1.它有超过16个字符。
1.它包含一个韩文字符。
但上述案例均获通过。
在这里我分享我的regex测试链接。
https://regexr.com/75qhd
先谢谢你!

ioekq8ef

ioekq8ef1#

试试这个:

^(?=.{6,18}$)(?=.*\d)(?=.*[`~@#!$%^&+=_-])(?=[A-Za-z][A-Za-z\d`~@#!$%^&+=_-]+$).*$

编辑:之前的正则表达式匹配asAS12한글之类的东西,我在[~@#!$%^&+=_-]+这部分之后添加了$,以确保字符串以[]中列出的特殊字符之一结尾,感谢@Wiktor Stribizew提到这个问题。

  • 说明 *
  • ^行/字符串的开头。
  • (?=.{6,18}$)确保字符串的长度为6-18
  • (?=.*\d)确保必须至少有一个数字。
  • (?=.*[~@#!$%^&+=_-])确保[]`中必须至少列出一个特殊字符
  • (?=[A-Za-z][A-Za-z\d~@#!$%^&+=_-]+$)`
  • [A-Za-z]确保第一个字符是字母。
  • [A-Za-z\d~@#!$%^&+=_-]+$,后跟[]`中列出的一个或多个字母、数字或特殊字符(无论顺序如何),后跟字符串/行的结尾。
  • .*如果满足上述要求,则匹配整个字符串。
  • $行/字符串的结尾。

参见regex demo

相关问题