来一轮带注释的演示,彻底搞懂javascript中的取代函数

  

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中的取代函数