1. Match函數
使用指定的正則表達式函數對字符串驚醒查找,並以數組形式返回符合要求的字符串
原型:stringObj.match(regExp)
參數:
stringObj 必選項,須要去進行匹配的字符串
RegExp 必選項,指定的正則表達式
返回值:若是沒有使用g(全局匹配)選項,則返回第一個匹配的字符串、該字符串所在位置及原始字符串組成的數組,若是使用g選項,則返回全部匹配的字符串組成的數組正則表達式
//示例1: var str = 「aaabbbcccaaabbbccc」; var res = str.match(/aaa/); //沒有使用g選項 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開始spa
//示例1: var str = 「aaabbbcccaaabbbccc」; var reg = /ccc/; var res = str.search(reg); console.log(res); //輸出 6
5.replace函數code
原型:stringObj.replace(regExp, replaceText)
參數:regExp表示正則表達式模式,stringObj表示須要進行匹配的字符串,replaceText表示替換成該文本內容,replaceText也能夠是返回字符串的一個函數
返回值:返回替換以後的字符串blog
//示例1: var str = 「aaabbbcccaaabbbccc」; var reg = /aaa/; var res = str.replace(reg, ’111′); console.log(res);//返回111bbbcccaaabbbccc ,只替換第一個匹配項,若須要替換全部則須要使用g選項
6.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']