1. Match函數正則表達式
使用指定的正則表達式函數對字符串驚醒查找,並以數組形式返回符合要求的字符串數組
原型:stringObj.match(regExp)函數
參數:spa
stringObj 必選項,須要去進行匹配的字符串orm
RegExp 必選項,指定的正則表達式索引
返回值:若是沒有使用g(全局匹配)選項,則返回第一個匹配的字符串、該字符串所在位置及原始字符串組成的數組,若是使用g選項,則返回全部匹配的字符串組成的數組字符串
示例1: input
var str = 「aaabbbcccaaabbbccc」; 原型
var res = str.match(/aaa/); //沒有使用g選項 string
console.log(res); //輸出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ] 第一個表示匹配的字符串;第二個表示匹配的字符串坐在的索引位置,從0開始計算;第三個表示原始字符串;
示例2:
var str = 「aaabbbcccaaabbbccc」;
var res = str.match(/aaa/g); //使用g選項,全局匹配
console.log(res); //輸出[ 'aaa', 'aaa' ] 全部匹配的字符串組成的數組
2.exec函數
使用指定的正則表達式模式去字符串中查找匹配項,並以數組形式返回,若是未查找到則返回null
原型:regExp.exec(stringObj)
參數:
regExp 必選項,表示指定的正則表達式模式
stringObj 必選項,表示須要查找的字符串
返回值:不管有無g選項,都返回第一個匹配的字符串、該字符串所在位置及原始字符串組成的數組,可是該方法能夠返回子匹配項,是match所不能及的
示例1:
var str = 「aaabbbcccaaabbbccc」;
var regExp = /aaa/; //未使用g選項
var res = regExp .exec(str);
console.log(res); //輸出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ]
示例2:
var str = 「aaabbbcccaaabbbccc」;
var regExp = /aaa/g; //使用g選項
var res = regExp .exec(str);
console.log(res); //輸出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ]
示例3:
var str = 「aaabbbccc1234aaabbbccc」;
var regExp = /ccc([0-9]+)aaa/;
var res = regExp .exec(str);
console.log(res); //輸出[ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbccc' ] 第一個表示整個正則表達式所匹配的內容;第二個表示()內容的子表達式所匹配的內容;第三個和第四個同上
示例4:
var str = 「aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc」;
var reg = /ccc([0-9]+)aaa/;
var res = reg.exec(str);
console.log(res); //輸出同示例三,由於exec只返回第一個匹配的字符串,若是想所有返回,則須要藉助while循環和g參數來實現,以下
var str = 「aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc」;
var reg = /ccc([0-9]+)aaa/g;
while(res = reg.exec(str)){
console.log(res);
}
//輸出以下:
[ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ][ 'ccc5678aaa', '5678', index: 28, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ]
//使用這個方法時切記加上g選項,不然while循環將沒法跳出,每次都循環第一個匹配項,致使死循環,可能卡死!
3.test函數
原型:regExp.test(str)
參數:regExp表示正則表達式模式 stringObj表示須要進行匹配的字符串
返回值:布爾類型,匹配則返回true,不然false
示例1:
var str = 「aaabbbcccaaabbbccc」;
var reg = /[a-z]+/;
var res = reg.test(str);
console.log(res); //輸出true
示例2:
var str = 「aaabbbcccaaabbbccc」;
var reg = /[0-9]+/;
var res = reg.test(str);
console.log(res); //輸出false
//該函數通常用來檢測某字符串是否符合指定的規則
4.search函數
原型:stringObj.search(regExp)
參數:regExp表示正則表達式模式 stringObj表示須要進行匹配的字符串
返回值:返回第一個匹配的字符串所在的位置(偏移量),從0開始
示例1:
var str = 「aaabbbcccaaabbbccc」;
var reg = /ccc/;
var res = str.search(reg);
console.log(res); //輸出 6
5.replace函數
原型:stringObj.replace(regExp, replaceText)
參數:regExp表示正則表達式模式,stringObj表示須要進行匹配的字符串,replaceText表示替換成該文本內容,replaceText也能夠是返回字符串的一個函數
返回值:返回替換以後的字符串
示例1:
var str = 「aaabbbcccaaabbbccc」;
var reg = /aaa/;
var res = str.replace(reg, ’111′);
console.log(res);//返回111bbbcccaaabbbccc ,只替換第一個匹配項,若須要替換全部則須要使用g選項
5.split函數
原型:stringObj.split([separator[, limit]])
參數:separator表示分隔符(此處也能夠是正則表達式),stringObj表示須要進行匹配的字符串,limit用來限制返回數組元素的個數
返回值:返回分割後的數組
示例1:
var str = 「aaa,bbb,ccc」;
var reg = /,/;
var res = str.split(reg);
console.log(res); //輸出[ 'aaa', 'bbb', 'ccc' ]
//其實這裏能夠簡單的寫爲var res = str.split(「,」);
示例2:
var str = 「aaa,bbb:ccc@ddd#eee」;
var reg = /[,:@#]/;
var res = str.split(reg);
console.log(res); //輸出[ 'aaa', 'bbb', 'ccc', 'ddd', 'eee' ] 這纔是用正則的強大之處
示例3.
var str = 「aaa,bbb:ccc@ddd#eee」;
var reg = /[,:@#]/;
var res = str.split(reg, 3);
console.log(res); //輸出[ 'aaa', 'bbb', 'ccc']