检查带有特殊字符的字母数字
var regex = /^[a-zA-Z0-9_$@.]{8,15}$/;
return regex.test(pass);
但是,true
即使我通过以下组合,上面的正则表达式也会返回
asghlkyudet
78346709tr
jkdg7683786
但是,我想要它,它必须具有字母数字和特殊字符,否则在任何情况下它都必须返回 false。前任:
fg56_fg$
Sghdfi@90
检查带有特殊字符的字母数字
var regex = /^[a-zA-Z0-9_$@.]{8,15}$/;
return regex.test(pass);
但是,true
即使我通过以下组合,上面的正则表达式也会返回
asghlkyudet
78346709tr
jkdg7683786
但是,我想要它,它必须具有字母数字和特殊字符,否则在任何情况下它都必须返回 false。前任:
fg56_fg$
Sghdfi@90
您可以替换a-zA-Z0-9_
为\w
, 并使用两个锚定的前瞻 - 一个用于特殊,一个用于非特殊,最简单的表达方式是:
/^(?=.*[_$@.])(?=.*[^_$@.])[\w$@.]{8,15}$/
使用前瞻检查字符串是否至少包含一个字母数字字符和至少一个特殊字符:
/^(?=.*[a-zA-Z0-9])(?=.*[_$@.])[a-zA-Z0-9_$@.]{8,15}$/
顺便说一句,特殊字符集太小了。即使考虑 ASCII 字符集,这甚至不是所有的特殊字符。
The dollar sign is a reserved character for Regexes. You need to escape it.
var regex = /^[a-zA-Z0-9_/$@.]{8,15}$/;