Javascript允许空值的电子邮件验证

时间:2013-04-25 13:36:11

标签: javascript regex validation email null

我有这个提交功能,检查电子邮件字段是否具有格式正确的地址。工作良好。但是,我希望该字段允许空值,因为此特定输入是可选的而不是必需的。我知道这应该很简单,我错过了显而易见的事实。有人指出我正确的方向......

编辑:这次提供整个表单验证。每当我只是更换电子邮件部分时,它就会破坏其他部分....

function validateSMSForm()
{
if (SMSForm.PID_Form.value.length < 4)
{
alert("Please enter a valid Partner ID");
return false;
}
if (SMSForm.area.value.length < 3)
{
alert("Please enter a valid 10-digit cell phone number");
return false;
}
if (SMSForm.prefix.value.length < 3)
{
alert("Please enter a valid 10-digit cell phone number");
return false;
}
if (SMSForm.line.value.length < 4)
{
alert("Please enter a valid 10-digit cell phone number");
return false;
}

<!-- EMAIL VALIDATION HERE
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.emailaddress.value))  
    {  
    return (true)  
    }  
    alert("Please enter a valid email address")  
    return (false) 

-->
}

3 个答案:

答案 0 :(得分:2)

首先检查空/空字符串:

if ((!form.emailaddress.value) || (/^\w+([.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+$/.test(form.emailaddress.value))) {
    //handle valid e-mail
} else {
    //handle invalid e-mail
}

答案 1 :(得分:1)

喜欢这个

假设

<form onsubmit="return validateSMSForm(this)">

JavaScript的:

function isEmail(str) {
  return !str || /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/.test(str);
}

function validateSMSForm(SMSForm) {
  if (SMSForm.PID_Form.value.length < 4) {
    alert("Please enter a valid Partner ID");
    return false;
  }

  if (SMSForm.area.value.length < 3 ||
      SMSForm.prefix.value.length < 3 || 
      SMSForm.line.value.length < 4) {
    alert("Please enter a valid 10-digit cell phone number");
    return false;
  } 

  if (!isEmail(SMSForm.emailaddress.value)) {
    alert("Please enter a valid email address")  
    return false; // 
  }

  return true; // allow submission
}

答案 2 :(得分:0)

var email = form.emailaddress.value;
if (!email){ return true } // this what your looking for?
if (/^\w+([.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+$/.test(email))
{
    return (true)
}
alert("Please enter a valid email address")
return (false)