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").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 akash.bhardwaj@gmail.com时,根据我的代码显示格式不正确但格式是对的,因为我的电子邮件是正确的,所以我出错了,我也想检查电话
答案 0 :(得分:1)
这是你的问题:
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 ) ) {
可以在此处找到更多信息:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions
另一种更现代的/ HTML5方式可能只是使输入类型=“电子邮件”并拥有自定义验证处理程序。有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation。
答案 1 :(得分:0)
(如果有帮助,我会把它作为答案而不是评论)
电子邮件验证的正则表达式是一个雷区。 W3正在为使用以下内容的html提出type = email属性:
/ ^ [A-ZA-Z0-9#$%&安培;!?“* + / = ^ _`{|}〜 - ] + @ [A-ZA-Z0-9 - ] +(? :[A-ZA-Z0-9 - ] +)* $ /
这是一个非常好的模式,但电子邮件中有很多可能性,很难100%准确。