手机号码表单验证

看了很多大神的解释,终于明白一点,结合大神们的讲解,写下自己的理解:

首先 是使用正则表达式;

正则表达式(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(3|4|5|7|8)\d{9}$

表示以1开头,第二位可能是3/4/5/7/8等的任意一个,在加上后面的\d表示数字[0-9]的9位,总共加起来11位结束。

从以上我们可以看到第一位是【1】开头,第二位则则有【3,4,5,7,8】,第三位则是【0-9】,第三位之后则是数字【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]  完全一样;

可以不验证第二位规则

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

 

你可能感兴趣的:(手机号码表单验证)