javascript - javascript 正则表达式中 Unicode 字符类的替换

标签 javascript java regex unicode

我的 javascript 应用程序中有一个用于验证密码的正则表达式,如下所示:

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$^.*()_])[a-zA-Z\d!@#$^.*()_]{8,64}$/gm

这本质上接受包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符的密码,以及长度在 8 到 64 个字符之间的密码。

我希望使用 Unicode classes provided here. 用 Ja​​va 重写它

我如何将这个 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/

相关文章:

c# - 拆分 ;然后在 = 上,使用 String.Split 时遇到问题,需要正则表达式

JavaScript - 操作对象的嵌套多维数组

javascript - RxJS 在 Ajax 错误后继续监听

javascript - 删除 RequireJS 中未使用的 shim 配置?

java - 如何从 Map-Reduce 中的多个目录读取多个文件

java - 使用@Transient注解进行持久化存储

javascript - 为什么 Angular 不能再插值了?

java - 替换匹配的正则表达式的子字符串

java - 正则表达式模式未断言 true

javascript - 写出重复正则表达式与指定序列数的性能