0

我正在使用密码验证器脚本,并且在长度、字母、大写字母、数字和空格方面做得很好。但我不确定如何检测特殊字符。

这是我的 jquery 脚本:

<script language="javascript" type="text/javascript">
$(document).ready(function(){

$('#password1').keyup(function() {
var pswd = $(this).val();

//validate the length
if(pswd.length < 6 ){ $('#length').removeClass('valid').addClass('invalid'); }
//validate letter
if(pswd.match(/[A-z]/)){ $('#letter').removeClass('invalid').addClass('valid'); }
//validate capital letter
if(pswd.match(/[A-Z]/)){ $('#capital').removeClass('invalid').addClass('valid'); }
//validate number
if(pswd.match(/\d/)){ $('#number').removeClass('invalid').addClass('valid'); }
//validate no spaces
if(pswd.match(/\s/)){ $('#spaces').removeClass('valid').addClass('invalid'); }

//validate symbols
if(pswd.match(/\D/)){ $('#symbol').removeClass('invalid').addClass('valid'); }

});

}); 
</script>

我承认我是从某个我不记得的地方离线的。当我测试脚本时,我注意到每当输入一个字母时,符号总是被验证。

if( pswd.match (/\D/)){错了吗?

4

1 回答 1

3

\D只是意味着“不是数字”,所以任何字母都可以。如果你想要“不是字母数字”,你想要[^a-zA-Z0-9]. 旁注,你[A-z]应该是[A-Za-z]或整个事情应该是/[a-z]/i

于 2012-08-07T23:27:37.730 回答