摘要:常用正則表達(dá)式及其思路詳解注意正則表達(dá)式的匹配超大文本的效率比較低,為了匹配效率加快,最好是是先精確到小模塊,再使用正則匹配,這樣搜索效率會(huì)快一點(diǎn)。出生日期碼表示編碼對(duì)象出生的年月日,其中年份用四位數(shù)字表示,年月日之間不用分隔符。
常用正則表達(dá)式及其思路詳解
注意:正則表達(dá)式的匹配超大文本的效率比較低,為了匹配效率加快,最好是是先精確到小模塊,再使用正則匹配,這樣搜索效率會(huì)快一點(diǎn)。
var vaildReg = { //判斷是否為QQ號(hào)碼 isQQ:function(str){ //1.校驗(yàn)首字母是不是數(shù)字,并且大于0。^[1-9] //2.校驗(yàn)QQ總長(zhǎng)度最大為11位,最小為5位 var reg = /^[1-9][0-9]{4,10}$/g; if(reg.test(str)){ return true; }else{ return false; } }, //判斷是否為手機(jī)號(hào)碼 isMobile:function(str){ //1.手機(jī)號(hào)的第一個(gè)是1開(kāi)頭 //2.手機(jī)號(hào)的第二位雖然一般都是3,4,5,7,8,但是為了防止以后再增長(zhǎng)所以不校驗(yàn)第二位 //3.手機(jī)號(hào)第三位以后的9位都是[0-9]之間的數(shù)字 //4.總長(zhǎng)度是11位 var reg = /^1[0-9]{10}$/g; if(reg.test(str)){ return true; }else{ return false; } }, //判斷是否為合法的email郵箱 isMail:function(str){ //1.中間有@符號(hào) //2.@符號(hào)前面有至少1位數(shù)字或字母 //3.@符號(hào)后面以什么什么.加上字母結(jié)尾 //4.@和.com之間有至少1位數(shù)字或字母 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; } }, //判斷是否為數(shù)字 isNumber:function(str){ //1.開(kāi)頭一直到最后都是數(shù)字^d+ var reg = /^d+$/g; if(reg.test(str)){ return true; }else{ return false; } }, //判斷是否全都為中文 isAllChinese:function(str){ //1.正則判斷中文根據(jù)unicode編碼來(lái)判斷,中文在unicode編碼中是u4e00到u9fa5,共有20901個(gè)漢字 var reg = /^[u4e00-u9fa5]+$/gm; if(reg.test(str)){ return true; }else{ return false; } }, //判斷是否包含中文 isContainChinese:function(str){ //1.正則判斷中文根據(jù)unicode編碼來(lái)判斷,中文在unicode編碼中是u4e00到u9fa5,共有20901個(gè)漢字 var reg = /[u4e00-u9fa5]/gm; if(reg.test(str)){ return true; }else{ return false; } }, //判斷是否為郵政編碼 isPostcode:function(str){ //1.首字母不為0,再有5個(gè)任意數(shù)字 var reg = /^[^0][0-9]{5}$/g; if(reg.test(str)){ return true; }else{ return false; } }, //判斷是否為合法的身份證號(hào)碼,校驗(yàn)15位和18位身份證 isIDcard:function(str){ //1.15位的身份證號(hào)碼是有18**|19**年出身的人 //2.18位的身份證末尾多了一個(gè)隨機(jī)校驗(yàn)碼 //3.身份證前6位是地址碼,后8位是出身日期,再后3位是順序碼,最后一位是校驗(yàn)碼。 //4.地址碼表示編碼對(duì)象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼。 //5.出生日期碼表示編碼對(duì)象出生的年、月、日,其中年份用四位數(shù)字表示,年、月、日之間不用分隔符。 //6.順序碼表示同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi),對(duì)同年、月、日出生的人員編定的順序號(hào)。順序碼的奇數(shù)分給男性,偶數(shù)分給女性。 //7.校驗(yàn)碼是根據(jù)前面十七位數(shù)字碼,按照ISO 7064:1983.MOD 11-2校驗(yàn)碼計(jì)算出來(lái)的檢驗(yàn)碼。 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; //前兩位地址碼規(guī)律 var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"內(nèi)蒙古",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:"臺(tái)灣",81:"香港",82:"澳門",91:"國(guó)外 "}; if(reg.test(str)){ if(!city[str.substr(0,2)]){ return false; }else{ //18位身份證需要驗(yàn)證最后一位校驗(yàn)位 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地址,協(xié)議一定不能少,是不是https的就不所謂了 //2.雙斜杠之后,可能會(huì)存在域名地址,也可能是IP地址(可能就會(huì)帶端口好了) // 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.每個(gè)段不能以0開(kāi)頭 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.開(kāi)頭空格,匹配多次^(s| | )+ //2.末尾空格,匹配多次(s| | )+$ str = str + ""; var reg = /^s|s+$/gim; return str.replace(reg,""); } } console.log("QQ",vaildReg.isQQ("12345678901")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("手機(jī)",vaildReg.isMobile("13700000000")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("郵箱",vaildReg.isMail("[email protected]")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("數(shù)字",vaildReg.isNumber("0333")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("全為中文",vaildReg.isAllChinese("你三好")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("包含中文",vaildReg.isContainChinese("33AAA你AA")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("郵政編碼",vaildReg.isPostcode("123456")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("身份證號(hào)碼",vaildReg.isIDcard("362321199310207836")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("URL地址",vaildReg.isURL("http://33:33/JM2X/1")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("IP地址",vaildReg.isIP4("925.255.255.255")?"校驗(yàn)通過(guò)":"校驗(yàn)失敗"); console.log("去除空格:",vaildReg.trim(" AAA 03 33 "));
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84021.html
摘要:大多數(shù)待遇豐厚的開(kāi)發(fā)職位都要求開(kāi)發(fā)者精通多線程技術(shù)并且有豐富的程序開(kāi)發(fā)調(diào)試優(yōu)化經(jīng)驗(yàn),所以線程相關(guān)的問(wèn)題在面試中經(jīng)常會(huì)被提到。將對(duì)象編碼為字節(jié)流稱之為序列化,反之將字節(jié)流重建成對(duì)象稱之為反序列化。 JVM 內(nèi)存溢出實(shí)例 - 實(shí)戰(zhàn) JVM(二) 介紹 JVM 內(nèi)存溢出產(chǎn)生情況分析 Java - 注解詳解 詳細(xì)介紹 Java 注解的使用,有利于學(xué)習(xí)編譯時(shí)注解 Java 程序員快速上手 Kot...
用Jmeter做接口測(cè)試只需要掌握幾個(gè)核心功能就可以了。 并不一定要把它所有的功能都掌握,先掌握核心功能入行,然后再根據(jù)工作需要和職業(yè)規(guī)劃來(lái)學(xué)習(xí)更多的內(nèi)容。這篇文章在前面接口測(cè)試框架(測(cè)試計(jì)劃--->線程組--->請(qǐng)求--->查看結(jié)果樹(shù))的前提下,來(lái)介紹必須要掌握的幾個(gè)核心功能,力求用最短的時(shí)間取得最大的成果。 在前面的文章中我提到,用Jmeter做接口測(cè)試的核心是單接口測(cè)試的參數(shù)化和關(guān)聯(lián)接口測(cè)試...
摘要:如果你還沒(méi)正式開(kāi)始正則表達(dá)式,請(qǐng)快速瀏覽跳過(guò)本章節(jié)。就是一個(gè)等同于但更簡(jiǎn)略的正則表達(dá)式。如果想查找全部,就要加標(biāo)識(shí)全局匹配規(guī)則正則表達(dá)式搜索字符串指定的值,從而去匹配字符串。正則表達(dá)式都是用來(lái)操作字符串的。 正則表達(dá)式 Create by jsliang on 2018-11-14 10:41:20 Recently revised in 2018-11-19 08:46:37 ...
閱讀 2966·2021-11-11 16:55
閱讀 528·2021-09-27 13:36
閱讀 1101·2021-09-22 15:35
閱讀 2924·2019-08-30 12:46
閱讀 3134·2019-08-26 17:02
閱讀 1836·2019-08-26 11:56
閱讀 1303·2019-08-26 11:47
閱讀 433·2019-08-23 17:01