首页 文章

正则表达式仅支持alphaNumeric和标点字符

提问于
浏览
-4

我正在开发一个需要密码验证的应用 .

我应该检查密码字符串是否只包含字母数字和惩罚,至少应该是字母和数字的组合来传递 .

有人可以帮助我并分享一个适用于此验证的正则表达式吗?

谢谢

1 回答

  • 2

    使用lookaheads的想法 .

    ^(?=\D*\d)(?=.*?[a-zA-Z])\p{Graph}+$
    

    或者作为Java字符串:

    "^(?=\\D*\\d)(?=.*?[a-zA-Z])\\p{Graph}+$"
    
    • (?=\D*\d) 第一次前瞻检查digit

    • (?=.*?[a-zA-Z]) 至少一个alpha的第二个

    来自^ start to $ end \p + one or more .

    • \p{Graph}[\p{Alnum}\p{Punct}] 组成

    • \p{Alnum} 字母数字字符 [A-Za-z0-9]

    • \p{Punct} !"#$%&'()*+,-./:;<=>?@[]^_{|}~` 之一

    See demo at regexplanet (Java)

相关问题