25

(123) 456-7890 や 1234567890 などの電話番号を検証したいのですが、次のコードで「一致」条件をどのように記述すればよいですか?

form.validate({

    rules: {

       phoneNumber: {matches:"[0-9]+",minlength:10, maxlength:10}
4

9 に答える 9

32

あなたの正規表現は次のようになります

[0-9\-\(\)\s]+.

数字、ダッシュ、括弧、およびスペースに一致します。

あなたの例と一致する、より厳密なものが必要な場合は、これを試してください:

([0-9]{10})|(\([0-9]{3}\)\s+[0-9]{3}\-[0-9]{4})

于 2013-11-07T15:55:33.223 に答える
18
function validatePhone(txtPhone) {
    var a = document.getElementById(txtPhone).value;
    var filter = /^((\+[1-9]{1,4}[ \-]*)|(\([0-9]{2,3}\)[ \-]*)|([0-9]{2,4})[ \-]*)*?[0-9]{3,4}?[ \-]*[0-9]{3,4}?$/;
    if (filter.test(a)) {
        return true;
    }
    else {
        return false;
    }
}

デモ http://jsfiddle.net/dishantd/JLJMW/496/

于 2014-03-17T05:41:17.357 に答える
1

これが古い投稿であることは知っていますが、他の人を助けるために私の解決策を共有したいと思いました.

この機能は、有効な 10 桁の電話番号「US 番号」が必要な場合に機能します。

function getValidNumber(value)
{
    value = $.trim(value).replace(/\D/g, '');

    if (value.substring(0, 1) == '1') {
        value = value.substring(1);
    }

    if (value.length == 10) {

        return value;
    }

    return false;
}

この方法の使い方はこちら

var num = getValidNumber('(123) 456-7890');
if(num !== false){
     alert('The valid number is: ' + num);
} else {
     alert('The number you passed is not a valid US phone number');
}
于 2016-02-11T19:40:40.110 に答える
1

これは私にとってはうまくいきます:-

/^\(?(\d{3})\)?[-\. ]?(\d{3})[-\. ]?(\d{4})$/
于 2016-10-09T11:55:49.220 に答える