正則表達式
爲什麼要有這個正則表達式?
因爲查找是一個比較複雜的東西,我們想更加準確快速找到自己想要的
什麼是正則表達式?
它可以定義一種字符串邏輯的公式,來和要查找的字符串做匹配,找到自己想要的。
定義:
1. 使用 /規則/修飾符
var patt = /Hello CoolDog/i;
2. 新創建一個RegExp對象,給兩個參數分別爲規則和修飾符,修飾符可省略
var patt1 = new RegExp("hello","i");
常用的修飾符:
“i”:不區分大小寫
var patt =
/HelloCoolDog/i;//i 不區分大小寫
var patt1 =
new RegExp("hello","i");
“g”:全局匹配,從找到的下一個下標開始再繼續往後查找,一直到字符串結束。
var patt2= /o/g;//全局查找
var result= str.replace(patt2,"O");
document.write(result);
字符模式
[Hel]:從裏面字符中任意一個去匹配字符串
var str ="Hello CoolDog";
var patt = /[Hel]/g;
[0-9];匹配任意一個數字
var str ="HelloC2342311345oolDog";
var patt1= /[0-9]/g;
var result= str.match(patt1);
document.write(result);
[a-z]:匹配所有小寫字母
varstr ="HelloC2342311345oolDog";
var
patt1 = /[a-z]/g;
var result = str.match(patt1);
document.write(result);
[A-Z]:匹配所有的大寫字母
var str ="HelloC2342311345oolDog";
var
patt1 = /[A-Z]/g;
var result = str.match(patt1);
document.write(result);
(a|x):匹配a或者x,a也能用[]來代替
var str ="HeadxlloC2342311345oolDog";
var patt1= /(a|x)/g;
var result= str.match(patt1);
document.write(result);
常用的元字符:
\w :單詞字符,包括所有字母和下劃線,w是word的縮寫。
var str ="___——____*&%¥#HeadxlloC234231!^?_+^1345oolDog";
var patt = /\w|/g;//word
var result= str.match(patt);
document.write(result);
\s :空格 s是space的縮寫
var str ="__ HeadxlloC2342311345oolDog";
var patt = /\s|/g;//space
var result= str.replace(patt,"&");
document.write(result);
\d :數字 ,digital的意思
var patt = /\d|/g;//
常用的量詞:
var patt=
/oo+/g;//匹配一個或多個
var patt1=
/oo*/g;//匹配0個或多個
var patt2=
/oo?/;//匹配0個或者一個
o+:找到一個或多個o
o* :找到0個或者多個
o?:找到0個或者1個
var patt=
/o{2}/g;//指定了o的個數
var patt1=
/o{2,3}/g;//指定至少兩個最多三個
var patt2=
/o{2,}/g;//指定至少兩個最多三個
o{3}:指定具體的個數
o{2,3}:指定一個有範圍的區間,最少兩個最多三個
o{2,}:最少兩個
^:必須以它後面的內容爲開頭
$:以什麼內容結束
RegExp常用的兩種方法:
Exec():返回的是找到符合正則表達式新的字符串
var patt= /\w+/g;
var str = "goodafternoon";
var result = patt.exec(str);
Test():返回的是true或者false 當字符串滿足正則表達式時位true否則爲false
var str=
prompt("請輸入密碼");
var patt = /[a-z]|[A-Z]\w{5,17}/i;
if (patt.test(str)){
document.write("您輸入的密碼正確");
}else
{
document.write("對不起,您輸入的密碼不符合規範!")
}