正則表達式
爲什麼要有這個正則表達式:因爲查找是一個比較複雜的東西,我們想要更加準確快速找到自己想要的。
什麼是正則表達式:它可以定義一種字符串邏輯的公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯
定義規則:
1、使用/規則/修飾符,修飾符可以省略
Var patt = /hellocooldog/i;
2、新創建一個RegExp對象,給兩個參數分別爲規則和修飾符,修飾符可以省略
Var patt = new RegExp(“//hello”,”i”);
常用的修飾符
i:不區分大小寫
Var str = “HelloCoolDog”;
Var patt1 = /hellocooldog/i;
Var result = str.search(patt1);
Document.write(result);
g:全局匹配,從找到的下一個下標開始再繼續往後查找,一直到字符串結束
Var patt2 = /o/g;
//全局查找
Var result = str.replace(patt2,”O”);
Document.write(result);
字符模式
[Hel]:從裏面字符中任意一個去匹配字符串
var str = "HelloCoolDog";
var patt= /[Hel]/g;//隨機取一個
varresult = str.match(patt);
document.write(result);//H,e,l,l,l
[0-9]:匹配任意一個數字
var str = "1H2el3loCoo4lDog6";
varpatt1 = /[0-9]/g;//隨機取一個
varresult = str.match(patt);
document.write(result);//1,2,3,4,6
[a-z]:匹配所有小寫字母
var str = "1H2el3loCoo4lDog6";
varpatt1 = /[a-z]/g;//隨機取一個ig可以一起用
varresult = str.match(patt1);
document.write(result);//e,l,l,o,o,o,l,o,g
[A-Z]:匹配所有大寫字母
var str = "1H2el3loCoo4lDog6";
varpatt1 = /[A-Z]/g;//隨機取一個ig可以一起用
varresult = str.match(patt1);
document.write(result);//H,C,D
(a|x):匹配a或x,a也能用[]來代替
var str = "1H2el3loCoo4lDog6";
varpatt1 = /[a-z]|[A-Z]/g;//隨機取一個ig可以一起用
varresult = str.match(patt1);
document.write(result);//H,e,l,l,o,C,o,o,l,D,o,g
常用的元字符:
\w:單詞字符 包括所有字母和數字和下劃線w是word的縮寫
var str = "1H2el_3loCo_o4l+Do-g6";
var patt= /\w/g;//word
varresult = str.match(patt);
document.write(result);
\s:空格,space的縮寫
var str = " H2el_3loCo_ 4l+Do-g6";
var patt= /\s/g;//space
varresult = str.replace(patt,"&");
document.write(result);
\d:數字 digital的縮寫
Var patt = /\d/g;//digital 數字
常用的量詞
o+:找到一個或多個o
var str ="1H2el_3loCoo_o4l&Doooog6";
var patt= /oo+/g;
varresult = str.match(patt);
document.write(result);
o*:匹配零個或多個o
var str = "1H2el_3looCo_o4l&Doooog6";
var patt= /oo*!/g;
varresult = str.match(patt);
document.write(result);
o?:零個或一個o
var str ="1H2el_3looCo_o4l&Doooog6";
var patt= /oo?/g;
varresult = str.match(patt);
document.write(result);
o{4}:只會匹配找到的四個o
var str ="1H2el_3looCo_o4l&Doooog6";
var patt= /o{4}/g;
varresult = str.match(patt);
document.write(result);
n{2,3}:最少兩個,最多3個
var str ="1H2el_3looCo_o4l&Doooog6";
var patt= /o{2,3}/g;//最少兩個,最多3個
varresult = str.match(patt);
document.write(result);
o{2,}:最少2個
var str ="1H2el_3looCo_o4l&Doooog6";
var patt= /o{2,}/g;
varresult = str.match(patt);
document.write(result);
^n:必須以後面的內容開頭
var str = "1Hello huadian";
var patt= /^[123]\w+/;
varresult = str.match(patt);
document.write(result);
n$:必須以前面的內容結尾
RegExp常用的兩種方法
exec():返回的是找到符合正則表達式新的字符串
test():返回的true或者false當字符串滿足正則表達式是爲true否則爲false。
var str = prompt("請輸入密碼");
var patt= /([a-z]|[A-Z])\w{5,17}/;
alert(patt.test(str));
if(patt.test(str)){
alert("您輸入的密碼正確");
}else{
alert("對不起,您輸入的密碼不符合規範");
}