【前端学习】字符串replace使⽤
String对象的replace⽅法包含两个参数,第⼀个参数表⽰执⾏匹配的正则表达式,也可以传递字符串,第⼆个参数表⽰代替匹配的⼦字符串。
   var b = s.replace("str1","str2");
与search和match⽅法不同,replace⽅法不会吧字符串转换为正则表达式对象,⽽是以字符串直接量的⽂本模式尽⼼匹配。第⼆个参数可以是替换⽂本,或者是⽣成替换⽂本的函数,将返回值作为替换⽂本。
replace⽅法同时执⾏查和替换两个操作。该⽅法将在字符串中查与正则表达式相匹配的⼦字符串,然后调⽤第⼆个参数替换这些⼦字符串。(js中正则表达式的使⽤⽅式有两种,⼀种是正则表达式对象的⽅法,⼀种是字符串对象的⽅法,前者有exec(str)、test(str)两个⽅法,后者有match(regexp)、replace(regexp)、search(regexp)、split(search)四个⽅法。)如果正则表达式具有全局性质,那么将替换所有匹配的⼦字符串,否则只替换第⼀个匹配⼦字符串。
   var b = '1231231234' ;
     console.place('123','321')) // 3211231234
     console.place(/123/,'321')) //3211231234⾮全局正则
     console.place(/123/g,'321')) //3213213214全局正则
在replace⽅法中约定了⼀个特殊的字符“$”,如果加了⼀个序号,就表⽰引⽤正则表达式中匹配的⼦表达式存储的字符串。例如:
   var s  = "javascript";
   var b = s.replace(/(java)(script)/,''$2-$1");
     console.log(b) // script-java
$1,$2...$99;与正则表达式中的第1~99个⼦表达式相匹配的⽂本。
$& 与正则表达式相匹配的⼦字符串。
$`位于匹配⼦字符串左侧的⽂本
$'位于匹配⼦字符串右侧的⽂本
$$表⽰$
当第⼆个参数使⽤函数时
      var s = 'script language = "javascript" type = " text / javascript" ';
   var f = function($1) {
         return $1.substring(0,1).toUpperCase() + $1.substring(1)
      };
字符串replace函数
     console.place(/(\b\w+\b)/g,f)); // Script Language = "Javascript" Type = " Text / Javascript"
    var f2 = function($1,$2,$3) {
         return $2+$3
      };
      console.place(/(\b\w+\b)/g,f2)); //script0 language7 = "javascript19" type31 = " text40 / javascript47"
arguments[0] 每次匹配的⽂本
arguments[1]~argument[n-3] 第⼀个⾄最后⼀个匹配⼦表达式匹配的⽂本
arguments[n-2] 匹配⽂本的下标
arguments[n-1] 执⾏匹配的字符串

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。