Javascript 匹配字符串中的符号

标签 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/)){ 错误吗?

最佳答案

\D 只是表示“不是数字”,因此任何字母都可以。如果您想要“非字母数字”,则需要 [^a-zA-Z0-9]。旁注,您的 [A-z] 应该是 [A-Za-z] 或者整个内容应该是 /[a-z]/i

关于Javascript 匹配字符串中的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11855498/

相关文章:

javascript - 带有 moustache.js 的内容相关模板/部分

javascript - 如何使用 ctrl + 单击选择多个单元格

javascript - 在文本框中仅输入数字

javascript - 正则表达式获取数组中的所有 JS 类名

javascript - Appcelerator/Titanium - Javascript 变量是否污染了 Controller 文件中的全局范围?

javascript 循环 getElementById

javascript - 使用javascript获取两个字符串之间的字符串

所有字母的RegEx(包括中文、希腊文等)

用于使用 anchor 进行查询的 javascript 正则表达式

python - 从多行文件中获取特定文本