Javascript电话号码验证

时间:2010-03-05 10:40:44

标签: javascript validation

我需要在javascript中验证电话号码。 要求是:

  

他们应该是10位数字,没有逗号,没有   破折号,只是数字,而不是数字   前面1+

这是我到目前为止所写的内容

function validatePhone(field,alerttxt) {
    with (field) {
        if(value.length > 10) {
            alert(alerttext);
            return false;
        }
        for(i = 0; i < value.length; i++) {
            if(parseInt(value[i]) == NaN) {
                alert(alerttxt);
                return false;
            }
        }
        return true;
    }
}
function validateForm(thisform) {
        if (validatePhone(phone,"Invalid phone number")==false) {
            phone.focus();
            return false;
        }

    }
}
  <form action="post.php" method="post" id="contactform" onsubmit="return validateForm(this)">
    <ol>
        <label for="phone">Your phone <span class="red"></span></label>
        <input id="phone" name="phone" class="text" />
      </li>
    </ol>
  </form>

但是,显然它不起作用。 如何编写validatePhone()函数以使其有效?

7 个答案:

答案 0 :(得分:29)

phone = phone.replace(/[^0-9]/g, '');
if(phone.length != 10) { 
   alert("not 10 digits");
} else {
  alert("yep, its 10 digits");
} 

这将根据您的要求进行验证和/或更正,删除所有非数字。

答案 1 :(得分:11)

Google libphonenumber对于全球电话号码的验证和格式化非常有用。它比使用RegEx更容易,更不神秘,更强大,它包含JavaScript,Ruby,Python,C#,PHP和Objective-C风格。

答案 2 :(得分:7)

您可以使用正则表达式:

function validatePhone(field, alerttext) {
    if (field.match(/^\d{10}/)) {
         return true;
    } 
    alert(alerttext);
    return false;
}

答案 3 :(得分:1)

仅接受数字括号和破折号的代码

function DoValidatePhone() {
    var frm = document.forms['editMemberForm'];                
    var stripped = frm.contact.value;
    var isGoodMatch = stripped.match(/^[0-9\s(-)]*$/);
    if (!isGoodMatch) {
        alert("The Emergency Contact number contains invalid characters." + stripped);
        return false;
    }
}

答案 4 :(得分:0)

固定功能:

function validateForm(thisform) {
        if (validatePhone(thisform.phone,"Invalid phone number")==false) {
            thisform.phone.focus();
            return false;
        }
        return true;
}

答案 5 :(得分:0)

直接在输入标签中添加所需格式的格式。

<input id="phone" name="phone" pattern="\d{10}" class="text" />

答案 6 :(得分:-1)

function validate(phoneString){

    reg = /^([+|\d])+([\s|\d])+([\d])$/;

    return reg.test(phoneString);

}