如何在正则表达式中检测下划线?

20 浏览
0 Comments

如何在正则表达式中检测下划线?

此问题已经有了答案:

正则表达式必须包含至少八个字符,至少一个数字,大小写字母和特殊字符的密码

我有一个 regex 表达式用于测试我的密码:至少一个数字,至少一个大写字母,至少一个小写字母和至少一个特殊字符

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s])/

但是下划线不被识别为特殊字符

我该如何改进这个问题?

admin 更改状态以发布 2023年5月23日
0
0 Comments

这里的问题在于,对于 JavaScript 来说,\w 表示:

[a-zA-Z0-9_]

因此你会隐含地避开 _

解释

你正则表达式中的这部分:

(?=.*?[^\w\s]) // Match special character

等价于:

(?=.*?[^a-zA-Z0-9_\s])

参考文献

\w 元字符用于查找字母数字字符。

一个字母数字字符是从 a-z、A-Z、0-9 中的字符,包括 _(下划线)字符。

https://www.w3schools.com/jsref/jsref_regexp_wordchar.asp

0