携帯電話番号フォーム検証

1695 ワード

多くの大神の解釈を見て、やっと少し理解して、大神たちの説明を結びつけて、自分の理解を書きます:
まず、正規表現を使用します.
正規表現(regular expression)は、文字モードを記述するオブジェクトです.JavaScript正規表現を使用すると、強力なモードマッチングとテキスト取得と置換機能が可能になります.
携帯電話番号の正規表現を検証します.
function checkPhone(){ 
    var phone = document.getElementById('phone').value;
    if(!(/^1[34578]\d{9}$/.test(phone))){ 
        alert("      ,   ");  
        return false; 
    } 
}

または
function checkPhone(){ 
    var phone = document.getElementById('phone').value;
    if(!(/^1(3|4|5|7|8)\d{9}$/.test(phone))){ 
        alert("      ,   ");  
        return false; 
    } 
}

 「小かっこはかっこ内を全体として、中かっこはかっこ内の1つに一致します」
 
以下、簡単に説明します.・
^1(3|4|5|7|8)\d{9}$


1で始まることを表し、2位は3/4/5/7/8などのいずれかであり、後ろのdを加えて数字[0-9]を表す9位で、合計11位で終わる.
以上から1位は【1】、2位は【3,4,5,7,8】、3位は【0-9】、3位には【0-9】、3位には【0-9】という数字が見られます.これにより、現在の携帯電話番号に合致する正規表現を得ることができます.
var reg = /^1(3|4|5|7|8)[0-9]{9}$/; //    

var phoneNum = '15507621999';//    

var flag = reg.test(phoneNum); //true

内 \dと[0-9]  まったく同じです.
2番目のビットルールを検証しなくてもよい
var reg = /^1[0-9]{10}$/;

 
携帯電話と固定電話の同時検証方法
window.Parsley.addValidator('mphone', {
    //var _reg =
    validateString: function(value) {
        $phone=(/^1[0-9]{10}$/.test(value));
        $tel=(/^0\d{2,3}-?\d{7,8}$/.test(value));
        if($phone==true || $tel==true) {
            return true;
        }else{
            return false;
        }
    },

    messages: {
        en: '        '
    }
});

リファレンス http://caibaojian.com/regexp-example.html