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