我正在使用密码验证器脚本,我对长度,字母,大写字母,数字和空格都很好。但我不确定如何检测特殊字符。
这是我的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 /)){错了吗?
答案 0 :(得分:3)
\D
只是表示“不是数字”,所以任何字母都可以使用。如果您想要“不是字母数字”,则需要[^a-zA-Z0-9]
。请注意,您的[A-z]
应为[A-Za-z]
,或者整件事应为/[a-z]/i