0

我已经使用 javascript 创建了一个简单的表单验证,并希望在输入中添加一些模式测试,以确保显然提交了正确的信息,但我对此很陌生,我想看看是否有人可以帮助我添加模式测试。

到目前为止,我的验证代码是:

function validate(form) {
var fail = false;
var name = document.getElementById("full_name");

if (name.value.length == 0) {
  document.getElementById("okName").className = "fail";
  fail = true;
}else{
  document.getElementById("okName").className = "success";
}



var email = document.getElementById("email");
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

if (email.value.length == 0) {
  document.getElementById("okEmail").className = "fail";
    fail = true;
}else{
  document.getElementById("okEmail").className = "success";
}

}

我认为我必须将条件添加到电子邮件验证的“if”语句中,但不知道从哪里开始?我知道我会如何使用 jQuery:

if( value.length<1 /*|| value==field_values[$(this).attr('id')]*/ || ( $(this).attr('id')=='email' && !emailPattern.test(value) )  )

但我不确定如何在原始 JavaScript 中做同样的事情,因为我不知道如何在纯 JavaScript 中定位电子邮件的输入!如果有人可以帮助我,将不胜感激!

4

2 回答 2

2

这看起来像:

var email = document.getElementById("email");
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

if (!emailPattern.test(email.value)) {
  document.getElementById("okEmail").className = "fail";
    fail = true;
}else{
  document.getElementById("okEmail").className = "success";
}

也不需要检查字符串的长度。无需为这样一个简单的任务而对您的网页进行 jQuerize。:-)

一些忠告:

  • 永远不要只依赖客户端验证
  • 验证控制是否确实存在(即 if (email) { ... } )
  • 修剪字符串或提供名称模式(您的表单通过在表单字段中输入单个空格字符进行验证)
  • 您的电子邮件模式实际上也不正确(点也是 [] 中的“任何字符”)
于 2012-07-20T14:02:43.873 回答
0
if (email.value.length === 0 || !emailPattern.test(email.value) ) {
  document.getElementById("okEmail").className = "fail";
  fail = true;
} else {
  document.getElementById("okEmail").className = "success";
}
于 2012-07-20T14:02:06.653 回答