我有以下正在运行的JavaScript代码:
<script>
function validate(form) {
// Shortcut to save writing
var pwd = form.elements.lgps.value;
// Check length
if(8 > pwd.length || pwd.length > 16)
return false;
// Check for at least 1 lowercase letter
var rgx = /[a-zA-Z]+/;
if(!rgx.test(pwd))
return false;
// Check for at least 1 digit
rgx = /\d+/;
if(!rgx.test(pwd))
return false;
// Check for no spaces
rgx = /\s/;
if(rgx.test(pwd))
return false;
return true;
}
</script>
以下是我的表格:
<form method="post" action="406.php" language="javascript"
name="myform" id="myform" onsubmit="return validate(this);">
如果以上所有内容都失败了,我想添加一条消息提醒,并且还要在我的表单中另一个字段进行验证。所以基本上我有一个用户名字段和一个密码字段。 我希望密码字段长度在8到20个字符之间,并且至少包含1个数字。
答案 0 :(得分:0)
看起来很好,除了第一个正则表达式测试大写和小写的事实,只需括起if语句并添加
alert('Password not right')
在返回语句之前。显然,对于每个返回,您可以相应地更改警报。
答案 1 :(得分:0)
function validatePwd(form) {
var pwd = form.elements.lgps.value;
if(8 > pwd.length || pwd.length > 16){
alert("Your password must be 8-16 characters in length");
return false;
}
var rgx = /[a-zA-Z]+/;
if(!rgx.test(pwd)){
alert("Your need at least 1 lowercase letter");
return false;
}
rgx = /\d+/;
if(!rgx.test(pwd)){
alert("You need at least 1 digit");
return false;
}
rgx = /\s/;
if(rgx.test(pwd)){
alert("You can't have spaces");
return false;
}
return true;
}
function validateUnm(form){
var unm = form.elements.lgem.value;
if(3 > unm.length || unm.length > 20){
alert("Your username must be 3-20 characters in length");
return false;
}
//and more conditions....
return true;
}
你可以这样称呼:
<form onsubmit="validatePwd(this);validateUnm(this)">
答案 2 :(得分:0)
下面是一个利用jQuery并将验证要求存储到object
名为tests
的解决方案。
根据所需元素提供的值(在本例中为ID为pass
的输入)将根据每个属性中声明的测试进行检查。如果测试通过,则该属性设置为1以指示true
。如果测试失败,则将该属性设置为0以指示false
。
然后遍历该对象以检查传递了哪些属性以及哪些属性失败。如果至少有一个测试失败,则使用alert()
消息通知用户无效标准。
<强> HTML:强>
<input type="text" id="pass" />
<强> jQuery的:强>
function validatePassword(pwd) {
var errors = [];
var tests = {
'- Min/Max Length of 8-16 characters': function(){
return (pwd.length < 8 || pwd.length > 16 ? 0 : 1);
}(),
'- Contains Alpha-numeric characters': function(){
rgx = /[a-zA-Z]+/;
return (!rgx.test(pwd) ? 0 : 1);
}(),
'- Contains 1 or more Digits': function(){
rgx = /\d+/;
return (!rgx.test(pwd) ? 0 : 1);
}(),
'- Contains No Spaces': function(){
rgx = /\s/;
return (rgx.test(pwd) ? 0 : 1);
}()
};
for(result in tests ){
if(tests[result] == 0){
errors.push(result);
}
}
if(errors.length > 0){
alert('Please correct your password to meet the following criteria:\n' + errors.join('\n'));
}
}
$(function(){
$('#pass').blur(function(){
validatePassword($(this).val());
});
});