正則表達(dá)式
- /pattern/attrs
- new RegEx(pattern,attrs)
/jerry/i i表示不區(qū)分大小寫
regexObj.test(str) 測試正則表達(dá)式與指定字符串是否匹配
錨點(diǎn):匹配一個(gè)位置- ^:起始位置
- $:結(jié)尾位置
- \b:單詞邊界
字符類:匹配一類字符中的一個(gè) - . :任一字符(換行除外)
元字符:具有特殊意義的字符 - ^霎挟、$赚爵、\b
- \d:0-9
- \D:[^\d]
- \s:空白符
- \S:[^\s]
- \w:[A-Za-z0-9_]
- \W:[^\w]
量詞:出現(xiàn)的次數(shù) - {m,n}:m到n次
- *:{0,}出現(xiàn)零到無窮多次
- ?:{0,1}出現(xiàn)零次或者一次
- +:{1,}出現(xiàn)一次或者多次
轉(zhuǎn)義符:需要匹配的字符是元字符
多選分支 - 或 | /thi(c|n)k/ === /thi[cn]k/
/.(png|jpg|jpeg|gif)$/
/^(.+)@(126|163|yahoo).com$/
屏幕快照 2016-08-08 下午4.52.42.png
捕獲:保存匹配到的字符串,日后再用
- () :捕獲
- (?:):不捕獲
str.match(regexp);
str.replace(regexp/substr,replacement) 替換一個(gè)子串
var url='http://blog.163.com/album?id=1#comment';
var reg = /(https?:)//([/]+)(/[?])?(?[^#])?(#.*)?/;
var arr = url.match(reg);
var protocol = arr[1];
var host = arr[2];
var pathname = arr[3];
var search = arr[4];
var hash = arr[5];
var str = 'The price of tomato is 5.';
str.replace(/(\d+)/,'$1.00');
var str = 'The price of tomato is 5,the price of apple is 10.';
str.replace(/(\d+)/g,'$1.00');
regexpObj.exec()
更強(qiáng)大的檢索功能
- 更詳盡的結(jié)果:index
- 過程的狀態(tài):lastIndex
屏幕快照 2016-08-08 下午10.47.50.png
正則表達(dá)式的貪婪模式和懶惰模式,區(qū)別在于是否有量詞睦霎?修飾,被量詞绢陌?修飾則是懶惰模式凛剥。