允许空值的Javascript电子邮件验证
我有这个提交功能,检查电子邮件字段是否有正确格式的地址。很好。但是,我希望该字段允许空值,因为此特定输入是可选的,不是必需的。我知道这应该很简单,我错过了显而易见的。有人给我指出正确的方向 编辑:这次提供整个表单验证。因为每次我只是更换电子邮件部分,它会破坏其他部分允许空值的Javascript电子邮件验证,javascript,regex,validation,email,null,Javascript,Regex,Validation,Email,Null,我有这个提交功能,检查电子邮件字段是否有正确格式的地址。很好。但是,我希望该字段允许空值,因为此特定输入是可选的,不是必需的。我知道这应该很简单,我错过了显而易见的。有人给我指出正确的方向 编辑:这次提供整个表单验证。因为每次我只是更换电子邮件部分,它会破坏其他部分 function validateSMSForm() { if (SMSForm.PID_Form.value.length < 4) { alert("Please enter a valid Partner ID"); r
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)
-->
}
函数validatessform()
{
如果(SMSForm.PID_Form.value.length<4)
{
警报(“请输入有效的合作伙伴ID”);
返回false;
}
如果(SMSForm.area.value.length<3)
{
警报(“请输入有效的10位手机号码”);
返回false;
}
if(SMSForm.prefix.value.length<3)
{
警报(“请输入有效的10位手机号码”);
返回false;
}
如果(SMSForm.line.value.length<4)
{
警报(“请输入有效的10位手机号码”);
返回false;
}
}
首先添加空/空字符串检查:
if ((!form.emailaddress.value) || (/^\w+([.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+$/.test(form.emailaddress.value))) {
//handle valid e-mail
} else {
//handle invalid e-mail
}
像这样
假定
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
}
功能isEmail(str){
return!str | |/^\w+([\.-]?\w+*@\w+([\.-]?\w+)*(\.\w{2,})+$/.test(str);
}
函数ValidateSSForm(SMSForm){
如果(SMSForm.PID_Form.value.length<4){
警报(“请输入有效的合作伙伴ID”);
返回false;
}
如果(SMSForm.area.value.length<3||
SMSForm.prefix.value.length<3 | |
SMSForm.line.value.length<4){
警报(“请输入有效的10位手机号码”);
返回false;
}
如果(!isEmail(SMSForm.emailaddress.value)){
警报(“请输入有效的电子邮件地址”)
返回false;//
}
返回true;//允许提交
}
别忘了先否定电子邮件:)一开始也犯了同样的错误。这对我不起作用。这是因为我将它包装在一组更大的函数中,用于提交时验证吗?更新以使用您的代码并允许类似something@something.infoperfection. 泰,先生。工作出色。同样,对于清理,我知道我可以合并其中的一些,但是我对此非常懒惰。上面的工作允许空值,但是忽略了二次格式验证。
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
}