JavaScript正則表達式實例詳解
更新時間:2016年10月16日 17:32:49 投稿:hebedich
在編寫處理字符串的程序或網(wǎng)頁時,經(jīng)常會有查找符合某些復雜規(guī)則的字符串的需要。正則表達式就是用于描述這些規(guī)則的工具。換句話說,正則表達式就是記錄文本規(guī)則的代碼。
廢話不多說了,直接把小編多年總結匯總的代碼奉獻給大家
<script type="text/javascript">
var str2 = "YouCan3You8Up,no can no bibi!";
var reg = /^[0-9a-zA-Z]{1,}$/;
console.log(reg.test(str2));
//正則表達式的一般形式
//正則表達式對象的創(chuàng)建:
//var 對象名 = new RegExp(參數(shù)1,參數(shù)2);
//參數(shù)1:匹配規(guī)則,必須是字符串
//參數(shù)2:可以省略,(屬性)可選值,用來設置匹配規(guī)則的范圍
//第一種方式
//判斷字符串中是否包含某子字符串
var str3 = "abcd";
var reg2 = new RegExp("ab");
console.log(reg2.test(str3)); //成功:true 不成功:false
//想匹配字符串,必須使用正則表達式的函數(shù)
//test(字符串)函數(shù)作用:用來判斷該字符串是否滿足正則表達式的規(guī)則,如果滿足,則返回true,如果不滿足,則返回false
//創(chuàng)建正則表達式的最常用方式 - 第二種方式
//var 對象名 = /參數(shù)1/參數(shù)2;
//參數(shù)1:設置匹配規(guī)則
//參數(shù)2:屬性(可選值),設置匹配規(guī)則的范圍
var str4 = "youbd";
//判斷 /mn/ 是否包含自字符串mn
var reg3 = /ou/;
console.log(reg3.test(str4));
//參數(shù)2:屬性(有三個值)
//i:不區(qū)分字母大小寫去匹配;
//g:全局搜索:即便匹配到對應的內容,也會繼續(xù)匹配,直到字符串結束位置
//m:多行搜索
var reg4 = /jingdong/i;
console.log(reg4.test("JingDongShangCheng"));
//匹配規(guī)則
//1.普通的字符匹配股則
// /12/ /ab/ /ac8/...
//2.特殊字符
// \n 換行
// \t 切換符號 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)過任意一個字符(a,b,ab),出現(xiàn),則為true,反之,為false
console.log(reg12.test("dafbcd"));
//特殊字符對應的正則表達式
// 1.選字符 - 用于指定字符串的范圍 例如:[0-9] 即匹配0 到 9 的數(shù)字;
// [a-z] 即匹配所有的小寫字母;
// [A-Z] 即匹配所有的大寫字母;
var reg13 = /[a-z0-9A-Z]/g;
console.log(reg13.test("aii9B"));
// match(正則表達式) 函數(shù)
// 作用:用來匹配該字符串中是否有符合規(guī)則的字符串,返回值是一個數(shù)組,每個字符串作為數(shù)組的一個元素
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(正則表達式) 函數(shù)
// 作用:只要匹配到符合規(guī)則的字符串就會將該字符串的開始下標返回,反之,返回-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"));
//正則表達式匹配作為分割符號
console.log(str16.split(/[ao]/));
var str17 = "1362388064@qq.com";
console.log(str17.split(/\./)); // \.轉義字符
//以 . 或者 @ 作為分隔符
console.log(str17.split(/[@.]/));
console.log(str17.split(/[@\.]/));
//替換 replace(正則表達式,字符串)
var str18 = "no zuo no dai";
console.log(str18.replace(/o/g, "L"));
console.log(str18.replace(/[no]/g, "B"));
//正則表達式里的量詞
// 1.{n} 重復出現(xiàn)至少n次
// 2.{m,n} 重復出現(xiàn) m 到 n 次
// 3. + 匹配 相當于{1,} 1到無窮大
// 4. * 相當于{0,} 0到無窮大
// 5. ? 相當于{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.^ 以某某為開頭 $ 以某某為結尾
//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));
//練習:判斷一個字符串是否符合電話號碼
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));
//判斷身份證號碼 18位
var num = "410184199504300000";
var regNum = /^[1-9]\d{16}[\d|x]$/;
//"^\d+$" //非負整數(shù)(正整數(shù) + 0)
//"^[0-9]*[1-9][0-9]*$" //正整數(shù)
//"^((-\d+)|(0+))$" //非正整數(shù)(負整數(shù) + 0)
//"^-[0-9]*[1-9][0-9]*$" //負整數(shù)
//"^-?\d+$" //整數(shù)
//"^\d+(\.\d+)?$" //非負浮點數(shù)(正浮點數(shù) + 0)
//"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點數(shù)
//"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮點數(shù)(負浮點數(shù) + 0)
//"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負浮點
//數(shù)
//"^(-?\d+)(\.\d+)?$" //浮點數(shù)
//"^[A-Za-z]+$" //由26個英文字母組成的字符串
//"^[A-Z]+$" //由26個英文字母的大寫組成的字符串
//"^[a-z]+$" //由26個英文字母的小寫組成的字符串
//"^[A-Za-z0-9]+$" //由數(shù)字和26個英文字母組成的字符串
//"^\w+$" //由數(shù)字、26個英文字母或者下劃線組成的字符串
//"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
//"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
///^13\d{9}$/gi手機號正則表達式
/*
//判斷是不是正數(shù)
/^\d{1,}$/
//判斷QQ號 5到11位的QQ號
/^[1-9]\d{4,10}$/
//判斷是不是整數(shù)(正負整數(shù))
/^\-{0,1}\d{1,}$/
//或者
/^\-?\d+$/
//小數(shù)
/^\-?\d+\.\d+$/
*/
//分組符號
//();
///nba{2}/g ---- nbaa 子字符串
///(nba){2}/g ----- nbanba 子字符串
///n(ba){2}/g ----- nbaba 子字符串
///[nba]{2}/g ----- 任意包含兩個字符(aa bb nn
//nb na ba)
</script>
相關文章
javascript圓盤抽獎程序實現(xiàn)原理和完整代碼例子
這篇文章主要介紹了javascript圓盤抽獎程序實現(xiàn)原理和完整代碼例子,需要的朋友可以參考下2014-06-06
極力推薦一款小巧玲瓏的可視化編輯器bootstrap-wysiwyg
這篇文章主要為大家極力推薦一款小巧玲瓏的可視化編輯器bootstrap-wysiwyg,是一款基于jquery和bootstrap的可視化編輯器,感興趣的小伙伴們可以參考一下2016-05-05
js對列表中第一個值處理與jsp頁面對列表中第一個值處理的區(qū)別詳解
本文是對js對列表中第一個值處理與jsp頁面對列表中第一個值處理的區(qū)別進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11

