javascript中的replace函数(带注释demo)
javascript这门语言一直就像一位带着面纱的美女,总是看不清,摸不透,一直专注服务器端,也从来没有特别重视过,直到最近几年,javascript越来越重要,越来越通用。最近和前端走的比较近,借此机会,好好巩固一下相关知识点。
1.初识replace
在js中有两个replace函数一个是location.replace(url)跳转到一个新的url
一个string.replace("xx","yy")替换字符串返回一个新的字符串,该方法并不改变字符串本身
location.replace(url)无痕跳转(将当前链接导航到一个新的url并不保存历史记录)
与之相对的是location.href="url"rel="externalnofollow"有痕跳转(将当前链接导航到一个新的url且保存历史记录)这个没有比较清晰
string.replace函数很多初学者,会认为这个跟C#中的Replace一样,但并不相同,js中replace更灵活。
最基本的用法就是简单替换字符串。来看一个例子:
varstr="abcd-abcd-abcd"; varresult=str.replace("a",""); console.log(result); //输出bcd-abcd-abcd //当第一个参数是一个简单字符串时,仅替换第一个匹配项
2.走进replace之正则表达式
参数一:正则表达式对象或字面量(支持gi模式)g全局匹配i忽略大小写
参数二:要替换的字符串或一个function
可以使用正则表达式的相关引用
如果是function,则替换为function的返回值
此function的参数:
match匹配的子串。(对应于上述的$&。)
p1,p2,...假如replace()方法的第一个参数是一个RegExp对象,则代表第n个括号匹配的字符串。(对应于上述的$1,$2等。)
offset匹配到的子字符串在原字符串中的偏移量。(比如,如果原字符串是“abcd”,匹配到的子字符串是“bc”,那么这个参数将是1)
string被匹配的原字符串。
正则表达的引用
$$插入一个"$"。
$&插入匹配的子串。
$`插入当前匹配的子串左边的内容。
$'插入当前匹配的子串右边的内容。
$n假如第一个参数是RegExp对象,并且n是个小于100的非负整数,那么插入第n个括号匹配的字符串。
3.来一轮带注释的demo,彻底搞懂javascript中的replace函数:
全局匹配:
varstr="abcd-abcd-abcd"; varresult=str.replace(/a/g,"e"); console.log(result); //输出ebcd-ebcd-ebcd //g全局匹配所有a字符串都将被替换
忽略大小写匹配:
varstr="abcd-abcd-abcd"; varresult=str.replace(/A/i,"e"); console.log(result); //输出ebcd-abcd-abcd //忽略大小写的匹配但没有进行全局匹配所以只替换第一个a
忽略大小写且全局匹配:
varstr="abcd-abcd-abcd"; varresult=str.replace(/A/gi,"e"); console.log(result); //输出ebcd-ebcd-ebcd //忽略大小写并全局匹配所有a都被替换
使用function作为第二参数:
varstr="abcd-abcd-1234"; varresult=str.replace(/([a-z]*)-([a-z]*)/gi,function(match,p1,p2,offset,str){ console.log(match);//abcd-abcd匹配的内容 console.log(p1);//第一个括号中匹配的内容 console.log(p2);//第二个括号匹配的内容 console.log(offset);//0匹配到的字符串的索引(偏移量) console.log(str);//原始字符串 return[p1,p2].join("+"); }); console.log(result); //输出abcd+abcd+1234 //原字符串中abcd-abcd被匹配后被替换为function返回的内容
在参数中引用正则表达式匹配项:
varstr="ab"; varresult=str.replace(/(\w+)\s(\w+)/gi,"$2$1"); console.log(result); //输出ba //这里的$1$2分别引用正则表达式中第一个喝第二个括号匹配的内容
在参数中引用匹配项左侧内容:
varstr='abc'; varresult=str.replace(/b/g,"$`");//$`代表匹配字符的左侧内容 console.log(result); //输出:aac
在参数中引用匹配项右侧内容:
varstr='abc'; varresult=str.replace(/b/g,"$'");//$'代表匹配字符的右侧内容 console.log(result); //输出:acc
使用正则表达式对象:
varstr="ab"; varreg=newRegExp(/(\w+)\s(\w+)/,"gi");//也可以使用正则表示对象来最为参数 varresult=str.replace(reg,"$2$1"); console.log(result);//输出ba
有了这些例子加上开头的名词解释,相信你已经彻底搞懂了javascript中的replace函数!
总结
以上所述是小编给大家介绍的javascript中的replace函数(带注释demo),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!