表格的电话和邮件验证

时间:2014-02-07 12:31:18

标签: 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").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时,根据我的代码显示格式不正确但格式是对的,因为我的电子邮件是正确的,所以我出错了,我也想检查电话

2 个答案:

答案 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%准确。

http://dev.w3.org/html5/markup/input.email.html