abstract:定義:正則用于規(guī)定在文本中檢索的內(nèi)容,它是對字符串執(zhí)行模式匹配的強(qiáng)大工具RegExp(正則表達(dá)式) 對象的語法: new RegExp(pattern, attributes); pattern為一個字符串或匹配規(guī)則 attributes為可選字符串,包含屬性g、i 和 m g:代表全局匹配 (繼續(xù)往下匹配) i:代表不區(qū)分大小寫匹配 m:代表多行匹配,只對^和$模式有用定義正則
定義:正則用于規(guī)定在文本中檢索的內(nèi)容,它是對字符串執(zhí)行模式匹配的強(qiáng)大工具
RegExp(正則表達(dá)式) 對象的語法: new RegExp(pattern, attributes);
pattern為一個字符串或匹配規(guī)則 attributes為可選字符串,包含屬性g、i 和 m
g:代表全局匹配 (繼續(xù)往下匹配)
i:代表不區(qū)分大小寫匹配
m:代表多行匹配,只對^和$模式有用
定義正則表達(dá)式有兩種形式:
構(gòu)造函數(shù)方式: new RegExp(pattern, attributes);
例:var reg=new RegExp(“abc","g"); 構(gòu)造函數(shù)中的正則可以是常量字符串或一個js變量
普通方式:/pattern/attributes(/正則/屬性)
例:var reg=/abc/g; 普通方式中的正則必須是一個常量字符串
每個正則表達(dá)式都有一個 lastIndex 屬性,用于記錄上一次匹配結(jié)束的位置(索引值)。
獲取 reg.lastIndex
設(shè)置 reg.lastIndex=0;
示例: var str=‘a(chǎn)bcdeabfg’;
var reg=new RegExp(‘a(chǎn)b’,‘g’);
alert(reg.test(str));//true
alert(reg.lastIndex);//2
元字符:
\d : 匹配任意一個數(shù)字,0~9 中的任意一個
\s : 匹配任意一個空白字符
\b : 匹配一個單詞邊界,不匹配任何字符
\w : 匹配任意一個字符( 字母、 數(shù)字、下劃線 )
. : 匹配任意一個字符,除了換行符( \n )
\n : 查找換行符
\u : 通常用來匹配漢字
表達(dá)式 "\d","\s","\b","\w",對應(yīng)的大寫字母表示相反的意義
如:\D 匹配所有的非數(shù)字字符;
方括號的使用:
[abc] : 查找方括號之間的任何字符。
[^abc] : 查找任何不在方括號之間的字符。
[0-9] : 查找任何從 0 至 9 的數(shù)字。
[a-z] : 查找任何從小寫 a 到小寫 z 的字符。
[A-Z] : 查找任何從大寫 A 到大寫 Z的字符。
量詞的使用:
n+ : 匹配任何包含至少一個 n 的字符串。
n? : 匹配任何包含零個或一個 n 的字符串。
n* : 匹配任何包含零個或多個 n 的字符串。
n{X} : 匹配包含 X 個 n 的序列的字符串。
n{X,Y} : 匹配包含 X 到Y(jié) 個 n 的序列的字符串。
^n : 匹配任何開頭為 n 的字符串。
n$ : 匹配任何結(jié)尾為 n 的字符串。
其他相關(guān)
| : 匹配左邊或者右邊
\ : 轉(zhuǎn)義符 特殊標(biāo)點(diǎn)符號,在前面加 \ 后,就代表該符號本身
^ 要匹配 "^" 字符本身,請使用 \^ ( ) 要匹配小括號本身,請使用 \( 和 \)
RegExp 對象的方法
test:檢索字符串中指定的值 返回 true 或 false reg.test(str);
exec: 檢索字符串返回查找結(jié)果的第一個值 reg.exec(str);
compile: 該方法可以重編輯指定的正則表達(dá)式
var reg=new RegExp("13[4-9](\\d){8}","g"); //重新編輯正則表達(dá)式 reg.compile("13[0-3](\\d){8}","g");
String 對象方法
search:檢索與正則表達(dá)式相匹配的值
用法:str.search(reg); (返回索引值,無-1)
match:返回所有正則表達(dá)式的匹配(加g)
用法:str.match(reg); (返回數(shù)組)
replace:替換與正則表達(dá)式匹配的子串
用法:str.replace(reg,"");
split:將字符串匹配的部分做分割(去除)
用法:str.split(reg); (返回數(shù)組)