用於模式匹配的String方法:
String支持4種使用正則表達式的方法:
seach()用於檢索,參數是一個正則表達式,返回第一個與之匹配的子串的位置,找不到則返回-1,如果參數不是正則表達式,則首先會通過RexExp構造函數將它轉換成正則表達式,seach()方法不支持全局搜索,它忽略修飾符g;
replace()用於檢索與替換操作,第一個參數是一個正則表達式,第二個參數是要進行替換的字符串。它對調用該方法的字符串檢索,按照模式匹配子串替換成第二個參數,若包含修飾符g則全文匹配。若第一個參數不是正則表達式而是字符串,則直接搜索替換掉這個字符串;
text.replace(/javascript/gi,'JavaScript')表示在text全文中搜索不區分大小寫的javascript替換成JavaScript
如果用來替換的字符串中出現($加數字),則replace()方法將用與$加數字指代的子表達式匹配的文本來替換,如:
var quote = /"([^"]*)"/g
text.replace(quote,'“$1”'); 全文搜索與/"([^"]*)"/匹配的字符串,替換為“$1”(表示只改變兩邊的雙引號為中文半角,而存儲在$1中的內容不變)$1存儲了指代與第一個左圓括號內的子表達式匹配的字符串;
match() 唯一的參數是一個正則表達式,返回的是一個由匹配結果組成的數組,如果參數不是正則表達式,則首先會通過RexExp構造函數將它轉換成正則表達式;
(二)如果這個正則表達式帶修飾符g,match()返回的數組元素是匹配全文得到的所有字符串;
(二)如果這個正則表達式不帶修飾符g,match()只檢索第一個匹配,但他也返回一個數組(數組的第一個元素是匹配的整個字符串,接下來的元素是表達式中所有用圓括號括起來的子表達式匹配到的字符串,每個元素對應一個括號)
如:
var url = /(\w*):\/\/([\w.]+)\/(\S*)/; var text = 'http://www.w3school.com.cn/jsref'; var result = text.match(url); if(result != null) { var fullurl = result[0]; var protocol =result[1]; var host = result[2]; var path = result[3]; }
split()將字符串按參數指定的分隔符拆分為多個子串組成的數組,如:
'123,345,789'.split(','); //返回['123','345','789']
'1, 2 , 3, 4 ,5 , 6'.split(/\s*,\s*/); //返回['1','2','3','4','5','6']
以上就是小編為大家帶來的JavaScript學習筆記整理_用於模式匹配的String方法的全部內容了,希望對大家有所幫助,多多支持~