我想检查密码是否包含非字母数字字符(如!)。
是否有类似的解决方案,因为这是针对字母字符的: 如果密码包含非字母数字字符,我想要为true。
var upperCase= new RegExp('[A-Z]');
if($("#input-set-password").val().match(upperCase))
{
}
答案 0 :(得分:0)
这是一种方法。 result
变量如果只是字母数字则为true,如果包含非字母数字字符则为false
var reg_password1 = 'test123';
var letters = /^[a-zA-Z0-9]+$/;
var result = letters.test(reg_password1);
检查它是否包含至少1个数字,小写和大写字母:
if(/\d/.test(reg_password1) && /[a-z]/.test(reg_password1) && /[A-Z]/.test(reg_password1))
将这些结合起来:
var reg_password1 = 'test123';
if(/^[a-zA-Z0-9]+$/.test(reg_password1) && /\d/.test(reg_password1) && /[a-z]/.test(reg_password1) && /[A-Z]/.test(reg_password1))
{
//Has at least 1 uppercase 1 lowercase 1 number and is only alphanumeric
}
这是JSFiddle
答案 1 :(得分:0)
这里有两件事是错的:
1)您的表达式检查字符串中的任何位置是否存在一个大写字符。我编辑的表达式^[A-Z]+$
"翻译"到:
"从开头(+
)到结束(^
)的大写字母($
=至少一个或多个)的字符串。&# 34;
2)match()
将 - 顾名思义 - 查找并返回所有匹配项。您将要在此处使用正则表达式test()
代替,这将返回true或false,如您所见:
var upperCase= new RegExp('^[A-Z]+$');
console.log(upperCase.test($("#input-set-password").val()));
console.log(upperCase.test($("#input-set-password2").val()));
console.log(upperCase.test($("#input-set-password3").val()));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input-set-password" value="ANBASFJH" />
<input type="text" id="input-set-password2" value="ANBASFJHasg" />
<input type="text" id="input-set-password3" value="ANBASF123" />
&#13;
答案 2 :(得分:0)
我使用了jquery.validate.js。 你不必混淆js检查输入是否有正确的字符,只需在html上标记它,它会为你完成剩下的工作。 E.g
<input data-val="true" <!-- Tell validate to check this input --> data-val-length="The Password must be at least 6 characters long." <!-- Message shown when length isn't meet --> data-val-length-max="100" <!-- Max length for 'this' input --> data-val-length-min="6" <!-- Minimum length for 'this' input--> data-val-required="The Password field is required." <!-- Error message shown if input is empty---> id="Password" name="Password" type="text" value="">