溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用正則驗(yàn)證手機(jī)號(hào)碼

發(fā)布時(shí)間:2021-09-16 14:24:10 來源:億速云 閱讀:184 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹了如何使用正則驗(yàn)證手機(jī)號(hào)碼,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

只允許輸入數(shù)字

<xsl:attribute name="onkeyup">value=value.replace(/[^\d]/g,'')</xsl:attribute>
<xsl:attribute name="onbeforepaste">clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))</xsl:attribute>
//固定電話只要有一個(gè)填寫即可
$('.form-inline').submit(function(){
    var m = $('input[name=mobile]').val();
    var p = $('input[name=phone]').val();
    var reg = /^1\d{10}$/;
    if((m == "" || !reg.test(m)) && p == ""){
      $('input[name=mobile]').addClass('error_color');
      $('input[name=mobile]').tooltip('show');
      return false;
    }else{
      $('input[name=mobile]').removeClass('error_color');
      $('input[name=mobile]').tooltip('hide');
      return true; 
    }
  })

下面看下最新手機(jī)號(hào)碼驗(yàn)證正則表達(dá)式

由于手機(jī)號(hào)段的不斷更新,以前的正則表達(dá)式已經(jīng)無法滿足需求。重新編寫這條表達(dá)式,號(hào)段資料來源依據(jù):http://www.jihaoba.com/tools/haoduan/

現(xiàn)有手機(jī)號(hào)段:

移動(dòng):139   138   137   136   135   134   147   150   151   152   157   158    159   178  182   183   184   187   188 
聯(lián)通:130   131   132   155   156   185   186   145   176 
電信:133   153   177   173   180   181   189

虛擬運(yùn)營(yíng)商:

170  171

整理后:

130~139  145,147 15[012356789] 178,176,177,173,170,171 180~189

var regex = {
  mobile: /^0?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57])[0-9]{8}$/
}

js:

var bool = checkRegexp(jq("#mobile"), /^0?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57])[0-9]{8}$/, "電話格式不對(duì)");

表達(dá)式分析:

“/”代表一個(gè)正則表達(dá)式。

“^”代表字符串的開始位置,“$”代表字符串的結(jié)束位置。

“?”代表匹配前面的字符一個(gè)或零個(gè),所以這里0?的意思是手機(jī)號(hào)碼可以以0開頭或不以0開頭。

接下的部分驗(yàn)證11位的手機(jī)號(hào)碼,先從13開始,因?yàn)閺?30-139都有所以可選區(qū)間是[0-9],15開頭的號(hào)碼沒有154所以[]里面沒有4這個(gè)數(shù)字,當(dāng)然也可以寫成[0-35-9],下面18和14開的號(hào)碼同上。

小括號(hào)括起來的代表一個(gè)子表達(dá)式,里面是4個(gè)可選分支分別用“|”來區(qū)分開來,在正則中“|”的優(yōu)先級(jí)是最低的,這里每個(gè)分支匹配的都是3個(gè)字符(一個(gè)[]只能匹配一個(gè)字符,里面是可選的意思),也就是手機(jī)號(hào)碼的前3位數(shù)字,那么后面還有8位數(shù)字需要匹配,可以是0-9的任意字符,所以是“[0-9]{8}”,{}中的數(shù)字代表匹配前面字符的個(gè)數(shù)。

分析完畢。

如果有大頭鬼在前面寫上86,17951之類的呢?

/^(0|86|17951)?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57])[0-9]{8}$/

C#版:

using System.Text.RegularExpressions;
    public static bool IsTelephone(string str_telephone)
    {
      return Regex.IsMatch(str_telephone, @"^(0|86|17951)?(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57])[0-9]{8}$");
    }

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何使用正則驗(yàn)證手機(jī)號(hào)碼”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI