我的 javascript 应用程序中有一个用于验证密码的正则表达式,如下所示:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$^.*()_])[a-zA-Z\d!@#$^.*()_]{8,64}$/gm
这本质上接受包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符的密码,以及长度在 8 到 64 个字符之间的密码。
我希望使用 Unicode classes provided here. 用 Java 重写它
我如何将这个 JS 正则表达式翻译成它的 java 等效项?
P.S:这里提供了弱密码的 js 正则表达式翻译,供引用
没有 unicode 类的 JS 正则表达式:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d!@#$^.*()_]{8,64}$/gm
用 Unicode 类翻译的正则表达式:
^(?=.*\\p{Ll})(?=.*\\p{Lu})(?=.*\\p{N})[\\p{L}\\p{N}]*
最佳答案
这应该有效
^(?=.*\\p{Ll})(?=.*\\p{Lu})(?=.*\\p{N})(?:(?=.*\\p{P})|((?=.*\\p{S})))[\\p{L}\\p{N}\\p{P}\\p{S}]{8,64}$
关于javascript - javascript 正则表达式中 Unicode 字符类的替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36526511/