MDN解释: 返回一个由替换值替换一些或所有匹配的模式后的新字符串。

使用以下值作为替换参数
序列 变量名 代表的值
1 $$ 插入一个 “$”
2 $& 插入匹配的子串
3 $` 插入当前匹配的子串左边的内容
4 $’ 插入当前匹配的子串右边的内容
5 $n 假如第一个参数是 RegExp对象,并且 n 是个小于100的非负整数,那么插入第 n 个括号匹配的字符串。提示:索引是从1开始

实例讲解

  1. $$
let str = "abcdefg123";
let rg = /([a-zA-Z]+)/g;
console.log(str.replace(rg, '$$')); // 输出:$123

解析:rg匹配到abcdefg,所以将该串替换为$

  1. $&
let str = "123abcd123efgh";
let rg = /([a-zA-Z]+)/g;
console.log(str.replace(rg, '.$&')); //输出:123.abcd123.efgh

解析:rg匹配到abcd并将其插入,且前面带一个.和efgh同样前面也带个.
3. $`

let str = "*|abcd()";
let rg = /([a-zA-Z]+)/g;
console.log(str.replace(rg, '.$`')); //输出:*|.*|()let str = "*|abcd()AAAA";
let rg = /([a-zA-Z]+)/g;
console.log(str.replace(rg, '.$`')); //输出:*|.*|().*|abcd()

解析
第一个,rg匹配到abcd,所以将其左边的所有字符串插入匹配的字符串位置,前面有*|,所以就会将abcd替换为.*|
第二个,rg首先匹配到abcd所以将其替换为.*|,继续向后又匹配到AAAA,此时前面有.*|abcd(),所以就将AAAa替换为.*|abcd()
4. $’

let str = "*|abcd()";
let rg = /([a-zA-Z]+)/g;
console.log(str.replace(rg, ".$'")); //输出:/*|.()()

解析:rg匹配到abcd,其右边的内容为(),所以就会将abcd替换为()
5. $n

let str = "*|abcd2345";
let rg = /([a-zA-Z]+)([0-9]+)/g;
console.log(str.replace(rg, '.$1')); //输出:*|.abcd
console.log(str.replace(rg, '.$2')); //输出:*|.2345

解析
第一个,rg匹配到abcd2345,然后寻找第一个括号匹配的字符串,匹配到abcd,所以就将abcd2345替换为.abcd
第二个,rg匹配到abcd2345,然后寻找第二个括号匹配的字符串,匹配到2345,所以就将abcd2345替换为.2345

使用函数作为参数

当匹配执行后,该函数就会执行。 函数的返回值作为替换字符串。
参数:replacer(match, p1, p2, p3, offset, string)
实例

function replacer(match, p1, p2, p3, offset, string) {return [p1, p2, p3].join(' - ');
}
var newString = 'abc12345#$*%()**'.replace(/([^\d]*)(\d*)([^\w]*)/, replacer);
console.log(newString);  //abc - 12345 - #$*%dfghjk,()p

正则的replace方法详解相关推荐

  1. new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解

    new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...

  2. 正则之match方法详解

    使用 match一般都要结合RegExp的全局g属性来使用的,这样返回的结果是:匹配到的所有结果的数组: let str1 = "12345678";let reg1 = /\d{ ...

  3. 在js中的replace方法详解

    replace 方法 返回根据正则表达式进行文字替换后的字符串的复制. stringObj.replace(rgExp, replaceText) 参数 stringObj 必选项.要执行该替换的 S ...

  4. python正则去掉重复单词_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 | 学步园...

    在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入输出如下: input:我今天 赚了 10 个亿,老百姓very happ ...

  5. python中文字符串多余空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...

    python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入 ...

  6. python修改文件内容_Python批量修改文本文件内容的方法详解

    这篇文章主要介绍了Python批量修改文本文件内容的方法的相关资料,需要的朋友可以参考下 Python批量替换文件内容,支持嵌套文件夹 import os path="./" fo ...

  7. 序列内置方法详解(string/list/tuple)

    一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...

  8. python语言的格式框架_django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...

  9. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. 在编程中,几 ...

  10. 【Python入门】Python字符串的45个方法详解

    Python中字符串对象提供了很多方法来操作字符串,功能相当丰富.必须进行全面的了解与学习,后面的代码处理才能更得心应手,编程水平走向新台阶的坚实基础.目前一共有45个方法,给大家分类整理,可以收藏查 ...

最新文章

  1. 2D简单图形相关算法罗列
  2. 反思耗时任务异步处理
  3. 求平方根sqrt()函数的底层算法效率问题
  4. 行为驱动开发BDD和Cucunber简介
  5. [转载] python基础:面向对象-封装
  6. Atitit 常见面试问题回答法 原则与细则 目录 1.1. 1、工作多久了?为什么离职? 1 1.2. 、自我评价 1 1.3. 问你有什么缺点 2 1.4. 4、理想薪资 2 1.5. 职业规
  7. mysql mysqldb_mysql模块mysqldb
  8. [应用代码] android 自动接听电话和挂断 (适合目前所有版本)
  9. html+css+JavaScript(菜鸟教程版本)学习笔记7.25
  10. 玩转电脑|电脑回收站还能这么玩,自定义图标让你的回收站与众不同
  11. 笔记:《高效能人士的七个习惯》第一章 由内而外全面造就自己
  12. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增岗位管理-Web部分
  13. 不用iTunes也能添加音乐到iPod
  14. controller 之@...
  15. 代码格式规范化, 代码风格统一
  16. 12位早起的IT大佬们让小伙伴们都惊呆了
  17. 一程序员被网恋女友诈骗1.8万,警方调查“女友”后发现竟是...
  18. 解决HP 3055 一体机与U盘冲突
  19. 运动:灵魂要想走的远,身体必须在路上
  20. 88.162.110/C27.000006-web渗透-ctf.show web4 【总有人把后台地址写入robots,帮黑阔大佬们引路】

热门文章

  1. 2021:An Improved Attention for Visual Question Answering
  2. 不要悲观!勇敢面对逆境
  3. Python面向对象编程-类和实例
  4. What Makes a Video a Video :Analyzing Temporal Information in Video Understanding Models and Dataset
  5. 【stm32f407】硬件介绍
  6. (技术类)中标麒麟linux终端命令操作之小白不知道的点(1)
  7. 深度学习领域,你心目中 idea 最惊艳的论文是哪篇?
  8. shell 的大于等于小于等
  9. 【记录一下】解决Dataset not found
  10. 【Kotlin学习之旅】Kotlin实现101个C#的LINQ示例,让你领略一下Kotlin代码的魅力