1.元字符
- . ^ :匹配字符串的開始
- . $: 匹配字符串的結(jié)束
// 匹配開始和結(jié)尾,字符串必須以w開頭,以2結(jié)尾,中間是eb02
var reg = /^web02$/;
- . .:任意字符 .
- . \w: 字母唬党、數(shù)字空执、下劃線
- . \s :任意空白字符
- . \d:匹配數(shù)字瞎访,等同于[0-9]
- . \D:匹配非數(shù)字灿渴,等同于[^0-9]
- . |:或匹配沮稚,如 /x|y/ 正則可匹配x或y兩個字符
- . [abc]: 表示 包含里面的任意一個
反義符
- . [^x] 匹配除“x”之外的所有字符艺沼,其中“x”可以為任意字符
- . [^xyz] 同上,匹配除“x蕴掏、y澳厢、z”之外的任意字符
// .匹配任意字符
var reg1 = /^b..k$/; // 以b開頭,以k結(jié)尾,中間有2個字符(任意)
var str1 = 'book'; //
var str2 = 'boook' //
// \w 匹配一個字符(數(shù)字,字母或下滑線的一種)
var reg2 = /^t\wq$/; // 以t開頭,一個字(上面三種中的一個),以q結(jié)尾
var str1 = 't2q';
var str2 = 't2wq';
// \s空格
var reg = /java\sscript/;
var str = 'study java script'; //
var str = 'study javascript'; //
// \d匹配數(shù)字 \D非數(shù)字
var reg = /\Dook/;
var str = '8ook'; //
// | 或
var reg = /^1(3|4|5|6|7|8)\d\d\d\d\d\d\d\d\d$/;
var str1 = '18800000000';
var str2 = '12800000000'
// [abc] 代表一個字符,字符只能是abc中的一個
var reg = /^1[345678]\d\d\d\d\d\d\d\d\d$/;
var str1 = '18800000000'; //
var str2 = '12800000000'; //
var reg = /^[^xyz]...$/; //
var str = '1234'; //
var str = 'x234'; //
重復(fù)匹配
- . ? 重復(fù)出現(xiàn)零次或一次
- . + 重復(fù)出現(xiàn)一次或多次
- . * 重復(fù)出現(xiàn)零次或多次
- . {n} 重復(fù)出現(xiàn)n次
- . {n,} 至少重復(fù)出現(xiàn)n次
- . {m,n} 重復(fù)重現(xiàn)m到n次囚似,其中剩拢,m<n
// ?0到1次,+1到多次,*0到多次
var reg = /^bo?k$/; // b開頭,0個或者1個o,以k結(jié)尾
var str = 'bok';
var str = 'book';
var reg = /^bo+k$/; // b開頭,1個或多個o,k結(jié)尾
var str = 'bok';
var str = 'booooooooook';
var reg = /^bo*k$/; //b開頭,0個或多個o,k結(jié)尾
// {n}重復(fù)n次, {m,n} 最少重復(fù)m次,最多重復(fù)n次
var reg = /^bo{2}k$/; // 匹配book 2個o
var reg = /^1[3,4,5,6,7,8]\d{9}/;
分組
- . 用括號分組
- . 分組的應(yīng)用
// 日期的匹配 2000-1-11 \1 對第一個括號的重復(fù)
var reg = /^\d{4}(\-|\.)\d{1,2}\1d{1,2}$/;
// 應(yīng)用
var reg = /(.*)(程序員)(.*)/;
var str = '我是web前端程序員,我來自深圳';
console.log(reg.test(str)); //
// 將程序員替換成攻城獅
var newStr = str.replace(reg, '$1攻城獅$3');
console.log(newStr);
var phone = '15013795539';
var reg = /(\d{3})\d{4}(\d{4})/;
var newPhone = phone.replace(reg, '$1****$2');
console.log(newPhone);