Javascript 表单的电话和邮件验证
Reg.jsJavascript 表单的电话和邮件验证,javascript,Javascript,Reg.js function chkform() { var pattern = "/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/"; var ret = true; if (document.getElementById("name").value === "") { document.getElementById("name")
function chkform() {
var pattern = "/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/";
var ret = true;
if (document.getElementById("name").value === "") {
document.getElementById("name").value = 'Name cannot be left blank' ;
//document.getElementById("name").style.color="red" ;
ret = false;
}
if (document.getElementById("email").value != "") {
if (document.getElementById("email").value != pattern ) {
document.getElementById("email").value = 'format is not right' ;
//document.getElementById("email").style.color="red" ;
ret = false;
}
} else {
document.getElementById("email").value = 'cannot b left blank' ;
}
if (document.getElementById("number").value === "") {
document.getElementById("number").value = 'number cannot be left blank' ;
//document.getElementById("number").style.color="red" ;
ret = false;
}
if (document.getElementById("city").value === "") {
document.getElementById("city").value = 'city cannot be left blank' ;
//document.getElementById("city").style.color="red" ;
ret = false;
}
if (document.getElementById("dep").value === "") {
//console.log("5");
ret = false;
}
if (document.getElementById("cname").value === "Course interested in") {
console.log("6");
ret = false;
}
return ret;
}
我正在使用reg.js验证我的表单,当值为空时,它可以正常工作,但当我输入我的邮件id时。bhardwaj@gmail.com,根据我的代码,其显示格式不正确,但格式正确,因为我的电子邮件是正确的,所以我出了问题,我想检查电话也(如果有帮助的话,我会把它作为一个答案而不是评论)
用于电子邮件验证的正则表达式是一个雷区。W3正在为html提议一个type=email属性,该属性使用:
/^[a-zA-Z0-9.!#$%&'*+/=?^ `{124;}-]+@[a-zA-Z0-9-]+(?:[a-zA-Z0-9-]+)*$/
这是一个很好的模式,但电子邮件中有太多的可能性,很难做到100%准确
这是你的问题:
if (document.getElementById("email").value != pattern ) {
因为您使用的是正则表达式,所以您希望对模式进行测试,而不是字符串比较。为了简化操作,您可以使用正则表达式文本;因此您可以编写:
var pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
请注意,我删除了引号。然后将另一行更改为:
if ( pattern.test( document.getElementById("email").value ) ) {
更多信息可在此处找到:
另一种更现代的/HTML5方法可能是只制作输入type=“email”并具有自定义验证处理程序。有关更多信息,请参阅