国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

常用正則表達式及其思路詳解

kevin / 3277人閱讀

摘要:常用正則表達式及其思路詳解注意正則表達式的匹配超大文本的效率比較低,為了匹配效率加快,最好是是先精確到小模塊,再使用正則匹配,這樣搜索效率會快一點。出生日期碼表示編碼對象出生的年月日,其中年份用四位數字表示,年月日之間不用分隔符。

常用正則表達式及其思路詳解

注意:正則表達式的匹配超大文本的效率比較低,為了匹配效率加快,最好是是先精確到小模塊,再使用正則匹配,這樣搜索效率會快一點。

var vaildReg = {
  //判斷是否為QQ號碼
  isQQ:function(str){
    //1.校驗首字母是不是數字,并且大于0。^[1-9]
    //2.校驗QQ總長度最大為11位,最小為5位
    var reg = /^[1-9][0-9]{4,10}$/g;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //判斷是否為手機號碼
  isMobile:function(str){
    //1.手機號的第一個是1開頭
    //2.手機號的第二位雖然一般都是3,4,5,7,8,但是為了防止以后再增長所以不校驗第二位
    //3.手機號第三位以后的9位都是[0-9]之間的數字
    //4.總長度是11位
    var reg = /^1[0-9]{10}$/g;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //判斷是否為合法的email郵箱
  isMail:function(str){
    //1.中間有@符號
    //2.@符號前面有至少1位數字或字母
    //3.@符號后面以什么什么.加上字母結尾
    //4.@和.com之間有至少1位數字或字母
    var reg = /^[0-9a-zA-Z.-]{1,}@[0-9a-zA-Z.-]{1,}.[a-zA-Z]+$/g;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //判斷是否為數字
  isNumber:function(str){
    //1.開頭一直到最后都是數字^d+
    var reg = /^d+$/g;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //判斷是否全都為中文
  isAllChinese:function(str){
    //1.正則判斷中文根據unicode編碼來判斷,中文在unicode編碼中是u4e00到u9fa5,共有20901個漢字
    var reg = /^[u4e00-u9fa5]+$/gm;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //判斷是否包含中文
  isContainChinese:function(str){
    //1.正則判斷中文根據unicode編碼來判斷,中文在unicode編碼中是u4e00到u9fa5,共有20901個漢字
    var reg = /[u4e00-u9fa5]/gm;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //判斷是否為郵政編碼
  isPostcode:function(str){
    //1.首字母不為0,再有5個任意數字
    var reg = /^[^0][0-9]{5}$/g;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //判斷是否為合法的身份證號碼,校驗15位和18位身份證
  isIDcard:function(str){
    //1.15位的身份證號碼是有18**|19**年出身的人
    //2.18位的身份證末尾多了一個隨機校驗碼
    //3.身份證前6位是地址碼,后8位是出身日期,再后3位是順序碼,最后一位是校驗碼。
    //4.地址碼表示編碼對象常住戶口所在縣(市、旗、區)的行政區劃代碼。
    //5.出生日期碼表示編碼對象出生的年、月、日,其中年份用四位數字表示,年、月、日之間不用分隔符。
    //6.順序碼表示同一地址碼所標識的區域范圍內,對同年、月、日出生的人員編定的順序號。順序碼的奇數分給男性,偶數分給女性。
    //7.校驗碼是根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼。
    var reg = /^[1-9]d{5}(18|19|20)?d{2}(0[1-9]|1[0-2])(0[1-9]|[12]d|3[01])d{3}(d|X)?$/g;
    //前兩位地址碼規律
    var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江 ",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北 ",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏 ",61:"陜西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外 "};
    if(reg.test(str)){
      if(!city[str.substr(0,2)]){
        return false;
      }else{
        //18位身份證需要驗證最后一位校驗位
        if(str.length == 18){
            var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
            var arrCh = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
            var sum = 0, i, residue;
            for(i=0; i<17; i++) {
              sum += str.substr(i, 1) * arrInt[i];
            }
            residue = arrCh[sum % 11];
            if (residue !== str.substr(17, 1)) return false;
        }
      }
      return true;
    }else{
      return false;
    }
  },
  //判斷是否為合法http地址
  isURL:function(str){
    //1.合法URL地址,協議一定不能少,是不是https的就不所謂了
    //2.雙斜杠之后,可能會存在域名地址,也可能是IP地址(可能就會帶端口好了)
    //
    var reg = /^https?://[a-zA-Z0-9._-]+(:d+)?(/((.)?(?)?=?&?[a-zA-Z0-9_-](?)?)*)*$/i;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //判斷是否為合法的IP4地址
  isIP4:function(str){
    // 1、1.1.1.1  四段  [0 , 255]
    // 2.第一段不能為0
    // 3.每個段不能以0開頭
    var reg = /^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/gi;
    if(reg.test(str)){
      return true;
    }else{
      return false;
    }
  },
  //去掉前后所有的空格,換行等
  trim:function(str){
    //1.開頭空格,匹配多次^(s|
|
)+
    //2.末尾空格,匹配多次(s|
|
)+$
    str = str + "";
    var reg = /^s|s+$/gim;
    return str.replace(reg,"");
  }
}
console.log("QQ",vaildReg.isQQ("12345678901")?"校驗通過":"校驗失敗");

console.log("手機",vaildReg.isMobile("13700000000")?"校驗通過":"校驗失敗");

console.log("郵箱",vaildReg.isMail("1333-.@3.a")?"校驗通過":"校驗失敗");

console.log("數字",vaildReg.isNumber("0333")?"校驗通過":"校驗失敗");

console.log("全為中文",vaildReg.isAllChinese("你三好")?"校驗通過":"校驗失敗");

console.log("包含中文",vaildReg.isContainChinese("33AAA你AA")?"校驗通過":"校驗失敗");

console.log("郵政編碼",vaildReg.isPostcode("123456")?"校驗通過":"校驗失敗");

console.log("身份證號碼",vaildReg.isIDcard("362321199310207836")?"校驗通過":"校驗失敗");

console.log("URL地址",vaildReg.isURL("http://33:33/JM2X/1")?"校驗通過":"校驗失敗");

console.log("IP地址",vaildReg.isIP4("925.255.255.255")?"校驗通過":"校驗失敗");

console.log("去除空格:",vaildReg.trim(" 

	AAA   03
33  
"));

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84021.html

相關文章

  • Java開發

    摘要:大多數待遇豐厚的開發職位都要求開發者精通多線程技術并且有豐富的程序開發調試優化經驗,所以線程相關的問題在面試中經常會被提到。將對象編碼為字節流稱之為序列化,反之將字節流重建成對象稱之為反序列化。 JVM 內存溢出實例 - 實戰 JVM(二) 介紹 JVM 內存溢出產生情況分析 Java - 注解詳解 詳細介紹 Java 注解的使用,有利于學習編譯時注解 Java 程序員快速上手 Kot...

    LuDongWei 評論0 收藏0
  • 軟件接口測試工具Jmeter使用核心詳解【建議收藏】

    用Jmeter做接口測試只需要掌握幾個核心功能就可以了。 并不一定要把它所有的功能都掌握,先掌握核心功能入行,然后再根據工作需要和職業規劃來學習更多的內容。這篇文章在前面接口測試框架(測試計劃--->線程組--->請求--->查看結果樹)的前提下,來介紹必須要掌握的幾個核心功能,力求用最短的時間取得最大的成果。 在前面的文章中我提到,用Jmeter做接口測試的核心是單接口測試的參數化和關聯接口測試...

    zoomdong 評論0 收藏0
  • 正則達式詳解及實戰

    摘要:如果你還沒正式開始正則表達式,請快速瀏覽跳過本章節。就是一個等同于但更簡略的正則表達式。如果想查找全部,就要加標識全局匹配規則正則表達式搜索字符串指定的值,從而去匹配字符串。正則表達式都是用來操作字符串的。 正則表達式 Create by jsliang on 2018-11-14 10:41:20 Recently revised in 2018-11-19 08:46:37 ...

    simon_chen 評論0 收藏0

發表評論

0條評論

kevin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<