JS中有四个可以将正则表达式作为参数的字符串方法,这四个方法用的非常多,非常重要,下面让我们一起来学习一下吧!
search()与indexOf()用法基本相同,都是用来检索一个字符串中是否含有指定内容,如果字符串中含有该内容则返回其第一次出现的索引,如果没有找到指定内容则返回-1,如:
varstr='abcdabcd'
console.log(str.search('d'))//3
console.log(str.search('e'))//-1
search()与indexOf()不同的是,search()可以接受一个正则表达式作为参数,且不能设置全局匹配模式,如:
varstr='abcdabcd'
console.log(str.search(/d/))//3
另外,indexOf()可以设置第二个参数用来指定开始查找的位置,但是search()没有第二个参数,如:
varstr='abcdabcd'
console.log(str.search('d',4))//3
console.log(str.indexOf('d',4))//7
split() 该方法可以将一个字符串拆分为一个数组,需要一个字符串作为参数,将会根据该参数拆分字符串,也可以用正则表达式进行拆分,默认全局拆分,如:
varstr="abcdabcd"
console.log(str.split("d"))//["abc", "abc", ""]
console.log(str.split(/d/))//["abc", "abc", ""]
match() ,可以根据正则表达式,从一个字符串中将符合条件的内容提取出来,封装到一个数组中返回,默认只会找到第一个符合条件的内容,但是可以设置正则表达式为全局匹配模式,进行全局查找,如:
varstr="abcdabcd"
console.log(str.match('d'))//["d", index: 3, input: "abcdabcd", groups: undefined]
console.log(str.match(/d/g))//["d", "d"]
repalce(),可以将字符串中指定内容替换为新的内容,默认只会替换第一个,但是可以设置正则表达式为全局匹配模式,进行全局查找。
参数1: 被替换的内容,可以接受一个正则表达式
参数2,要替换的内容
varstr="abcdabcd"
console.log(str.replace('d','-'))//abc-abcd
console.log(str.replace(/d/g,'-'))//abc-abc-