JS中有四個可以將正則表達式作為參數(shù)的字符串方法,這四個方法用的非常多,非常重要,下面讓我們一起來學習一下吧!
search()與indexOf()用法基本相同,都是用來檢索一個字符串中是否含有指定內(nèi)容,如果字符串中含有該內(nèi)容則返回其第一次出現(xiàn)的索引,如果沒有找到指定內(nèi)容則返回-1,如:
varstr='abcdabcd'
console.log(str.search('d'))//3
console.log(str.search('e'))//-1
search()與indexOf()不同的是,search()可以接受一個正則表達式作為參數(shù),且不能設(shè)置全局匹配模式,如:
varstr='abcdabcd'
console.log(str.search(/d/))//3
另外,indexOf()可以設(shè)置第二個參數(shù)用來指定開始查找的位置,但是search()沒有第二個參數(shù),如:
varstr='abcdabcd'
console.log(str.search('d',4))//3
console.log(str.indexOf('d',4))//7
split()? 該方法可以將一個字符串拆分為一個數(shù)組,需要一個字符串作為參數(shù),將會根據(jù)該參數(shù)拆分字符串,也可以用正則表達式進行拆分,默認全局拆分,如:
varstr="abcdabcd"
console.log(str.split("d"))//["abc", "abc", ""]
console.log(str.split(/d/))//["abc", "abc", ""]
match() ,可以根據(jù)正則表達式,從一個字符串中將符合條件的內(nèi)容提取出來,封裝到一個數(shù)組中返回,默認只會找到第一個符合條件的內(nèi)容,但是可以設(shè)置正則表達式為全局匹配模式,進行全局查找,如:
varstr="abcdabcd"
console.log(str.match('d'))//["d", index: 3, input: "abcdabcd", groups: undefined]
console.log(str.match(/d/g))//["d", "d"]
repalce(),可以將字符串中指定內(nèi)容替換為新的內(nèi)容,默認只會替換第一個,但是可以設(shè)置正則表達式為全局匹配模式,進行全局查找。
參數(shù)1: 被替換的內(nèi)容,可以接受一個正則表達式
參數(shù)2,要替換的內(nèi)容
varstr="abcdabcd"
console.log(str.replace('d','-'))//abc-abcd
console.log(str.replace(/d/g,'-'))//abc-abc-