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

时间:2017-11-08 14:28:08

标签: javascript regex expression

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

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

下划线未被识别为special character

我该如何改善这个?

1 个答案:

答案 0 :(得分:5)

问题在于,对于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