JavaScript正則表達(dá)式實(shí)例詳解
廢話不多說了,直接把小編多年總結(jié)匯總的代碼奉獻(xiàn)給大家
<script type="text/javascript"> var str2 = "YouCan3You8Up,no can no bibi!"; var reg = /^[0-9a-zA-Z]{1,}$/; console.log(reg.test(str2)); //正則表達(dá)式的一般形式 //正則表達(dá)式對(duì)象的創(chuàng)建: //var 對(duì)象名 = new RegExp(參數(shù)1,參數(shù)2); //參數(shù)1:匹配規(guī)則,必須是字符串 //參數(shù)2:可以省略,(屬性)可選值,用來設(shè)置匹配規(guī)則的范圍 //第一種方式 //判斷字符串中是否包含某子字符串 var str3 = "abcd"; var reg2 = new RegExp("ab"); console.log(reg2.test(str3)); //成功:true 不成功:false //想匹配字符串,必須使用正則表達(dá)式的函數(shù) //test(字符串)函數(shù)作用:用來判斷該字符串是否滿足正則表達(dá)式的規(guī)則,如果滿足,則返回true,如果不滿足,則返回false //創(chuàng)建正則表達(dá)式的最常用方式 - 第二種方式 //var 對(duì)象名 = /參數(shù)1/參數(shù)2; //參數(shù)1:設(shè)置匹配規(guī)則 //參數(shù)2:屬性(可選值),設(shè)置匹配規(guī)則的范圍 var str4 = "youbd"; //判斷 /mn/ 是否包含自字符串mn var reg3 = /ou/; console.log(reg3.test(str4)); //參數(shù)2:屬性(有三個(gè)值) //i:不區(qū)分字母大小寫去匹配; //g:全局搜索:即便匹配到對(duì)應(yīng)的內(nèi)容,也會(huì)繼續(xù)匹配,直到字符串結(jié)束位置 //m:多行搜索 var reg4 = /jingdong/i; console.log(reg4.test("JingDongShangCheng")); //匹配規(guī)則 //1.普通的字符匹配股則 // /12/ /ab/ /ac8/... //2.特殊字符 // \n 換行 // \t 切換符號(hào) tab鍵 // \r 回車鍵 enter鍵 // \d 數(shù)字 0-9 或者 [0123456789] // \D 非數(shù)字 或者 [^0123456789] // \w 字母,數(shù)字,下劃線,漢字 // \W 非(字母,數(shù)字,下劃線,漢字)之外的 // \s 空白(空格,換行,tab切換鍵) // \S 非空白 // . 除了\n之外的其他字符 或者 [^\n] // [] 用來匹配字符串中是否出現(xiàn)過[]中的字符,如果出現(xiàn),為true,不出現(xiàn),為false // [^] 用來匹配除了[]中出現(xiàn)的字符 var reg5 = /\n/; var str5 = "LaMo\nSi"; console.log(reg5.test(str5)); var reg6 = /\d/; //以數(shù)字開頭 console.log(reg6.test("007t7")); var reg7 = /\D/; console.log(reg7.test("3403l")); var reg8 = /\w/; console.log(reg8.test("$-@9")); var reg9 = /\W/; console.log(reg9.test("$-@9")); var reg10 = /\s/; console.log(reg10.test("longgui lamosi")); var reg11 = /\S/; console.log(reg11.test("longguilamosi")); var reg12 = /[ab]/; //判斷字符串中是否出現(xiàn)過任意一個(gè)字符(a,b,ab),出現(xiàn),則為true,反之,為false console.log(reg12.test("dafbcd")); //特殊字符對(duì)應(yīng)的正則表達(dá)式 // 1.選字符 - 用于指定字符串的范圍 例如:[0-9] 即匹配0 到 9 的數(shù)字; // [a-z] 即匹配所有的小寫字母; // [A-Z] 即匹配所有的大寫字母; var reg13 = /[a-z0-9A-Z]/g; console.log(reg13.test("aii9B")); // match(正則表達(dá)式) 函數(shù) // 作用:用來匹配該字符串中是否有符合規(guī)則的字符串,返回值是一個(gè)數(shù)組,每個(gè)字符串作為數(shù)組的一個(gè)元素 var str13 = "A*99abcY0B49L"; var arr = str13.match(reg13); console.log(arr); var str14 = "*abc99!@a3ab"; var reg14 = /ab/g; var arr2 = str14.match(reg14); console.log(arr2); // search(正則表達(dá)式) 函數(shù) // 作用:只要匹配到符合規(guī)則的字符串就會(huì)將該字符串的開始下標(biāo)返回,反之,返回-1 var str15 = "youabcdY90we"; var result = str15.search(/ab/); console.log(result); var str16 = "you can you up,no can no bibi!"; console.log(str16.split("")); console.log(str16.split("o")); //正則表達(dá)式匹配作為分割符號(hào) console.log(str16.split(/[ao]/)); var str17 = "1362388064@qq.com"; console.log(str17.split(/\./)); // \.轉(zhuǎn)義字符 //以 . 或者 @ 作為分隔符 console.log(str17.split(/[@.]/)); console.log(str17.split(/[@\.]/)); //替換 replace(正則表達(dá)式,字符串) var str18 = "no zuo no dai"; console.log(str18.replace(/o/g, "L")); console.log(str18.replace(/[no]/g, "B")); //正則表達(dá)式里的量詞 // 1.{n} 重復(fù)出現(xiàn)至少n次 // 2.{m,n} 重復(fù)出現(xiàn) m 到 n 次 // 3. + 匹配 相當(dāng)于{1,} 1到無窮大 // 4. * 相當(dāng)于{0,} 0到無窮大 // 5. ? 相當(dāng)于{0,1} 0-1 可有可無 var str19 = "aasdfghjklzxcvb"; //var reg19 = /a{2}/g; //var reg19 = /a{1,}/g; //var reg19 = /a{3,6}/; //var reg19 = /a+/; //var reg19 = /a*/; var reg19 = /a?/g; console.log(reg19.test(str19)); var str20 = "youaabcad"; console.log(str20.replace(/a?/, "A")); console.log(str20.replace(/a?/g, "A")); //判斷郵政編碼(字符串是否滿足郵政編碼) //六位數(shù),并且全部是數(shù)字 var email = "450000"; //第一種形式 // var regEmail = /^\d{6}$/g; //第二種形式 var regEmail = /^[0-9]\d{5}$/g; console.log(regEmail.test(email)); // 2.定位符 例如:1.^ 以某某為開頭 $ 以某某為結(jié)尾 //2.\b :匹配到單詞的邊界 var str21 = "abcde"; // var reg21 = /^abc/;//以abc為開頭 // var reg21 = /^[abc]/;//以a或b或c為開頭 var reg21 = /[^abc]/; //除了a或b或c之外的字符 console.log(reg21.test(str21)); var str22 = "mouse money eye see"; // \b + 單詞 (匹配到單詞前邊界的mo) console.log(str22.match(/\bmo/g)); // 單詞 + \b (匹配到單詞后邊界的ey) console.log(str22.match(/ey\b/g)); //練習(xí):判斷一個(gè)字符串是否符合電話號(hào)碼 var phoneNum = "13849007907"; var regPhone = /^1[34578]\d{9}$/; console.log(regPhone.test(phoneNum)); //判斷是否包含漢字 var word = "longgui拉莫斯"; var regWord = /[\u4e00-\u9fa5]+/g; console.log(regWord.test(word)); //判斷身份證號(hào)碼 18位 var num = "410184199504300000"; var regNum = /^[1-9]\d{16}[\d|x]$/; //"^\d+$" //非負(fù)整數(shù)(正整數(shù) + 0) //"^[0-9]*[1-9][0-9]*$" //正整數(shù) //"^((-\d+)|(0+))$" //非正整數(shù)(負(fù)整數(shù) + 0) //"^-[0-9]*[1-9][0-9]*$" //負(fù)整數(shù) //"^-?\d+$" //整數(shù) //"^\d+(\.\d+)?$" //非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0) //"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點(diǎn)數(shù) //"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0) //"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負(fù)浮點(diǎn) //數(shù) //"^(-?\d+)(\.\d+)?$" //浮點(diǎn)數(shù) //"^[A-Za-z]+$" //由26個(gè)英文字母組成的字符串 //"^[A-Z]+$" //由26個(gè)英文字母的大寫組成的字符串 //"^[a-z]+$" //由26個(gè)英文字母的小寫組成的字符串 //"^[A-Za-z0-9]+$" //由數(shù)字和26個(gè)英文字母組成的字符串 //"^\w+$" //由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串 //"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址 //"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url ///^13\d{9}$/gi手機(jī)號(hào)正則表達(dá)式 /* //判斷是不是正數(shù) /^\d{1,}$/ //判斷QQ號(hào) 5到11位的QQ號(hào) /^[1-9]\d{4,10}$/ //判斷是不是整數(shù)(正負(fù)整數(shù)) /^\-{0,1}\d{1,}$/ //或者 /^\-?\d+$/ //小數(shù) /^\-?\d+\.\d+$/ */ //分組符號(hào) //(); ///nba{2}/g ---- nbaa 子字符串 ///(nba){2}/g ----- nbanba 子字符串 ///n(ba){2}/g ----- nbaba 子字符串 ///[nba]{2}/g ----- 任意包含兩個(gè)字符(aa bb nn //nb na ba) </script>
相關(guān)文章
bootstrap table實(shí)現(xiàn)x-editable的行單元格編輯及解決數(shù)據(jù)Empty和支持多樣式問題
本文著重解決x-editable編輯的數(shù)據(jù)動(dòng)態(tài)添加和顯示數(shù)據(jù)為Empty的問題,還有給表格單元格的內(nèi)容設(shè)置多樣式,使得顯示多樣化,需要的朋友可以參考下2017-08-08JS基礎(chǔ)之邏輯結(jié)構(gòu)與循環(huán)操作示例
這篇文章主要介紹了JS基礎(chǔ)之邏輯結(jié)構(gòu)與循環(huán)操作,結(jié)合實(shí)例形式分析了JavaScript邏輯判斷、流程控制、循環(huán)語句等相關(guān)操作技巧,需要的朋友可以參考下2020-01-01JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉查找樹的定義與表示方法
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉查找樹的定義與表示方法,簡單講述了二叉查找樹的概念、特點(diǎn)及javascript針對(duì)二叉查找樹的創(chuàng)建、插入、遍歷等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-04-04js將多維數(shù)組轉(zhuǎn)為一維數(shù)組后去重排序
本文主要介紹了js將多維數(shù)組轉(zhuǎn)為一維數(shù)組后去重排序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06DWR實(shí)現(xiàn)模擬Google搜索效果實(shí)現(xiàn)原理及代碼
本文主要介紹DWR實(shí)現(xiàn)模擬Google搜索效果實(shí)現(xiàn)原理,感興趣的朋友可以了解下,或許對(duì)你的DWR學(xué)習(xí)有幫助,閑話就不多說了,看代碼了2013-01-01javascript實(shí)現(xiàn)抽獎(jiǎng)程序的簡單實(shí)例
下面小編就為大家?guī)硪黄猨avascript實(shí)現(xiàn)抽獎(jiǎng)程序的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06使用 UniApp 實(shí)現(xiàn)小程序的微信登錄功能
這篇文章主要介紹了使用 UniApp 實(shí)現(xiàn)小程序的微信登錄功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Bootstrap基本組件學(xué)習(xí)筆記之下拉菜單(7)
這篇文章主要為大家詳細(xì)介紹了Bootstrap基本組件學(xué)習(xí)筆記之下拉菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12