博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【前端学习】字符串replace使用
阅读量:5255 次
发布时间:2019-06-14

本文共 1566 字,大约阅读时间需要 5 分钟。

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.log(b.replace('123','321')) // 3211231234

     console.log(b.replace(/123/,'321')) //3211231234  非全局正则

     console.log(b.replace(/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)

      };

     console.log(s.replace(/(\b\w+\b)/g,f)); // Script Language = "Javascript" Type = " Text / Javascript" 

    var f2 = function($1,$2,$3) {

         return $2+$3

      };

      console.log(s.replace(/(\b\w+\b)/g,f2)); //script0 language7 = "javascript19" type31 = " text40 / javascript47" 

  • arguments[0] 每次匹配的文本
  • arguments[1]~argument[n-3] 第一个至最后一个匹配子表达式匹配的文本
  • arguments[n-2] 匹配文本的下标
  • arguments[n-1] 执行匹配的字符串

转载于:https://www.cnblogs.com/lomo321/p/4558244.html

你可能感兴趣的文章
Problem B: 占点游戏
查看>>
python常用模块之sys, os, random
查看>>
HDU 2548 A strange lift
查看>>
Linux服务器在外地,如何用eclipse连接hdfs
查看>>
react双组件传值和传参
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
CentOS 简单命令
查看>>
使用 SharedPreferences 分类: Andro...
查看>>
TLA+(待续...)
查看>>
题解: [GXOI/GZOI2019]与或和
查看>>
MacOS copy图标shell脚本
查看>>
国外常见互联网盈利创新模式
查看>>
Oracle-05
查看>>
linux grep 搜索查找
查看>>
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
vue项目中使用百度统计
查看>>
android:scaleType属性
查看>>