javascript这门语言一直就像一位带着面纱的美女,总是看不清,摸不透,一直专注服务器端,也从来没有特别重视过,直到最近几年,javascript越来越重要,越来越通用。最近和前端走的比较近,借此机会,好好巩固一下相关知识点。
1。初识替换
在js中有两个替换函数一个是location.replace (url)跳转到一个新url的
一个. replace (“xx",“yy")替换字符串返回一个新的字符串,该方法并不改变字符串本身
location.replace (url)无痕跳转(将当前链接导航到一个新的url并不保存历史记录)
与之相对的是location.href=https://www.yisu.com/zixun/皍rl”有痕跳转(将当前链接导航到一个新的url且保存历史记录)这个没有比较清晰
字符串。取代函数很多初学者,会认为这个跟c#中的替换一样,但并不相同,js中取代更灵活。
最基本的用法就是简单替换字符串来。看一个例子:
<代码> var str=癮bcd-abcd-abcd”; var=str.replace结果(“a”, " "); console.log(结果);//输出bcd-abcd-abcd//当第一个参数是一个简单字符串时,仅替换第一个匹配项代码>
2。走进取代之正则表达式
参数一:正则表达式对象或字面量(支持gi模式)g全局匹配我忽略大小写
参数二:要替换的字符串或一个函数
可以使用正则表达式的相关引用
如果是函数,则替换为函数的返回值
此函数的参数:
匹配匹配的子串。(对应于上述的,美元)。
p1, p2,……假如替换()方法的第一个参数是一个正则表达式对象,则代表第n个括号匹配的字符串。(对应于上述的1美元,2美元等。)
抵消匹配到的子字符串在原字符串中的偏移量。(比如,如果原字符串是“abcd匹配到的子字符串是“公元前”,那么这个参数将是1)
字符串被匹配的原字符串。
正则表达的引用
$ $插入一个““美元。
$,插入匹配的子串。
美元'插入当前匹配的子串左边的内容。
美元'插入当前匹配的子串右边的内容。
$ n假如第一个参数是正则表达式对象,并且n是个小于100年的非负整数,那么插入第n个括号匹配的字符串。
3。来一轮带注释的演示,彻底搞懂javascript中的取代函数:
全局匹配:
<代码> var str=癮bcd-abcd-abcd”; 结果var=str.replace (e/a/g); console.log(结果);//输出ebcd-ebcd-ebcd//g全局匹配所有一字符串都将被替换代码>
忽略大小写匹配:
<代码> var str=癮bcd-abcd-abcd”; 结果var=str.replace(//我,“e”); console.log(结果);//输出ebcd-abcd-abcd//忽略大小写的匹配但没有进行全局匹配所以只替换第一个一个代码>
忽略大小写且全局匹配:
<代码> var str=癮bcd-abcd-abcd”; 结果var=str.replace (//gi,“e”); console.log(结果);//输出ebcd-ebcd-ebcd//忽略大小写并全局匹配所有一个都被替换代码>
使用函数作为第二参数:
<代码> var str=癮bcd - abcd - 1234”; 结果var=str.replace (/([a - z] *) - ([a - z] *)/gi,函数(匹配,p1, p2,抵消,str) { console.log(匹配);//abcd-abcd匹配的内容 console.log (p1);//第一个括号中匹配的内容 console.log (p2);//第二个括号匹配的内容 console.log(抵消);//0匹配到的字符串的索引(偏移量) console.log (str);//原始字符串 返回(p1, p2) . join (“+”); }); console.log(结果);//输出abcd + abcd + 1234//原字符串中abcd-abcd被匹配后被替换为函数返回的内容代码>
在参数中引用正则表达式匹配项:
<代码> var str=癰”; 结果var=str.replace (/(\ w +) \ s (\ w +)/gi, " $ 2 $ 1 "); console.log(结果);//输出b//这里的$ 1 $ 2分别引用正则表达式中第一个喝第二个括号匹配的内容代码>
在参数中引用匹配项左侧内容:
<代码> var str=' abc '; var=str.replace (/b/g,结果“美元”);//美元的代表匹配字符的左侧内容 console.log(结果);//输出:aac 代码>
在参数中引用匹配项右侧内容:
<代码> var str=' abc '; var=str.replace (/b/g,结果“美元”);//美元的代表匹配字符的右侧内容 console.log(结果);//输出:acc 代码>
使用正则表达式对象:
<代码> var str=癰”; var reg=new RegExp (/(\ w +) \ s (\ w +)/gi);//也可以使用正则表示对象来最为参数 var=结果str.replace (reg,“$ 2 $ 1 "); console.log(结果);//输出b来一轮带注释的演示,彻底搞懂javascript中的取代函数