我有一个通过javascript验证的PHP表单。我想在用户必须确认其电子邮件的表单中添加另一个字段。我怎么能在javascript验证文件中这样做呢? 以下是我目前对初始电子邮件表单的验证:
this.setHandler('email',
function (value) {
regex=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
return regex.test(value);
}
);
答案 0 :(得分:1)
改编这样的东西......
this.setHandler('email-confirm',
function (value) {
return value == document.getElementsByTagName('email')[0].value;
}
);
假设确认电子邮件的name
(或setHandler()
的第一个参数)为email-confirm
,原始电子邮件输入为name
}是email
(假设它是第一个元素)。
基本上,我将email-confirm
的当前值与原始值进行比较,如果它们相等,则函数返回true
。
答案 1 :(得分:0)
当然,真正的答案是在编写正则表达式来验证电子邮件时要小心,因为大多数人都会弄错。你忽略了myname+other@domain.com之类的第一部分以及custom top-level domains的失败。
如果可以,请使用现有的库jquery-validate,因为他们已经为您完成了艰苦的工作,并且内置了电子邮件验证以及字段比较。
如果您需要自己编写,请使用better expression。
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA
-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
无论如何,你实际上已经询问过如何“确认”他们的电子邮件......这不仅仅是将一个字段与另一个字段进行比较的问题。
// using jQuery
this.setHandler('email2',
function (value) {
return (value == $("#email").val());
}
);