我的注册表单中有一个密码字段。以下是javascript验证的代码。
if(document.getElementById('txtPassword').value == '' || document.getElementById('txtPassword').value == 'Password' ){
alert("Please enter Password");
document.getElementById('txtPassword').focus();
return false;
}
else if (document.getElementById('txtPassword').value.length < 8)
{
alert('Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number');
return false;
}
else if ( (! document.getElementById('txtPassword').value.match(/[a-z]/) ) || (! document.getElementById('txtPassword').value.match(/[A-Z]/) ) ) {
alert('Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number');
return false;
}
else if (!document.getElementById('txtPassword').value.match(/\d+/)) {
alert('Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number');
return false;
}
else if (document.getElementById('txtPassword').length < 8)
{
alert('Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number');
return false;
}
我需要检查单引号。如果用户在密码字段中输入单引号并点击输入错误“应该在此字段中避免单引号”。
怎么做?
答案 0 :(得分:4)
else if (document.getElementById('txtPassword').value.indexOf("'") != -1) {
alert("Avoid single quotes in this field");
return false;
}
这是一个简单的测试用例。如果您创建一个html页面,将其放在head标签中,在浏览器中打开它,您会看到它有效:
var value1 = "abc'def";
var value2 = "abcdef";
if(value1.indexOf("'") != -1)
alert(value1 + " contains a '");
else
alert(value1 + " does not contain a '");
if(value2.indexOf("'") != -1)
alert(value2 + " contains a '");
else
alert(value2 + " does not contain a '");
答案 1 :(得分:1)
使用此正则表达式进行密码检查
^(?=.*\d)(?=.*[a-zA-Z]).{8,}
目前,您正在进行大量验证检查,以避免仅使用上面的正则表达式。
if (! /^(?=.*\d)(?=.*[a-zA-Z]).{8,}/.test(txtPass)) {
flag = false;
}
else if(txtPass.indexOf("'") != -1) {
flag = false;
}
if (!flag)
alert("Please ensure your password has at least eight characters, a mix of upper and lowercase and at least one number");
参考 LIVE DEMO