JS的正則表達式簡介
阿新 • • 發佈:2018-07-01
數據 分享 div 正則表達 程序 image rep ron 方法
1、JS的正則表達式
1.1 簡介
JS的正則表達式比較簡單,總體上只分為兩個功能:一個是test——用於匹配字符串是否符合規定的正則表達式規則;另外一個是exec——用於獲取匹配到的數據。
1.2 test介紹
我們利用/.../生成正則表達式的對象,例如我們想匹配包含數字0-9可以這樣定義:
rep = /\d+/
然後調用test方法即可:
rep.test(‘abcd123vdsd345‘);
結果為:
註意默認情況下這個字符串只要包含數字就返回true。
但是如果我們想匹配字符串中必須全部都包含數字,只要改一下正則表達式規則即可:
1.3 exec介紹
1.3.1 默認情況
默認情況下exec僅拿匹配到的第一個值,並且將這個值存放到數組中:
rep = /\d+/;
str = ‘qwe123fds456sd666‘;
rep.exec(str);
結果如下:
大家可以看到,不管匹配多少次,默認時僅匹配出來了123。
1.3.2 全局匹配:/.../g
如果利用全局匹配的話,可以像叠代器那樣講數字全部匹配出來:
rep = /\d+/g;
str = ‘qwe123fds456sd666‘;
rep.exec(str);
結果如下:
這裏需要註意的一點是:最後那個null是結束的標誌,如果再在null後面執行的話,程序會自動從字符串的頭重新開始匹配的 。
1.3.3 多行匹配:/.../m
JS正則匹配時本身就是支持多行,此處多行匹配只是影響正則表達式^和$,m模式也會使用^$來匹配換行的內容:
var pattern = /^Java\w*/gm;
var text = "JavaScript is more fun than \nJavaEE or JavaBeans!";
pattern.exec(text);
結果如下:
1.3.4 不區分大小寫:/.../i
pattern = /\bjava\w*\b/gi; str = ‘JAVAScript11 javascript22 dasd‘ pattern.exec(str);
結果如下:
1.4 字符串中的相關方法:
obj.search(regexp) 獲取索引位置,搜索整個字符串,返回匹配成功的第一個位置(g模式無效)
obj.match(regexp) 獲取匹配內容,搜索整個字符串,獲取找到第一個匹配內容,如果正則是g模式找到全部
obj.replace(regexp, replacement) 替換匹配替換,正則中有g則替換所有,否則只替換第一個匹配項,
$數字:匹配的第n個組內容;
$&:當前匹配的內容;
$`:位於匹配子串左側的文本;
$‘:位於匹配子串右側的文本
$$:直接量$符號
JS的正則表達式簡介