Javascript匹配字符串中的符号

时间:2012-08-07 23:23:28

标签: javascript regex

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

这是我的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 /)){错了吗?

1 个答案:

答案 0 :(得分:3)

\D只是表示“不是数字”,所以任何字母都可以使用。如果您想要“不是字母数字”,则需要[^a-zA-Z0-9]。请注意,您的[A-z]应为[A-Za-z],或者整件事应为/[a-z]/i