正则的replace方法详解
MDN解释: 返回一个由替换值替换一些或所有匹配的模式后的新字符串。
使用以下值作为替换参数
序列 | 变量名 | 代表的值 |
---|---|---|
1 | $$ | 插入一个 “$” |
2 | $& | 插入匹配的子串 |
3 | $` | 插入当前匹配的子串左边的内容 |
4 | $’ | 插入当前匹配的子串右边的内容 |
5 | $n | 假如第一个参数是 RegExp对象,并且 n 是个小于100的非负整数,那么插入第 n 个括号匹配的字符串。提示:索引是从1开始 |
实例讲解
- $$
let str = "abcdefg123";
let rg = /([a-zA-Z]+)/g;
console.log(str.replace(rg, '$$')); // 输出:$123
解析:rg匹配到abcdefg,所以将该串替换为$
- $&
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方法详解相关推荐
- new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解
new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...
- 正则之match方法详解
使用 match一般都要结合RegExp的全局g属性来使用的,这样返回的结果是:匹配到的所有结果的数组: let str1 = "12345678";let reg1 = /\d{ ...
- 在js中的replace方法详解
replace 方法 返回根据正则表达式进行文字替换后的字符串的复制. stringObj.replace(rgExp, replaceText) 参数 stringObj 必选项.要执行该替换的 S ...
- python正则去掉重复单词_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 | 学步园...
在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入输出如下: input:我今天 赚了 10 个亿,老百姓very happ ...
- python中文字符串多余空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入 ...
- python修改文件内容_Python批量修改文本文件内容的方法详解
这篇文章主要介绍了Python批量修改文本文件内容的方法的相关资料,需要的朋友可以参考下 Python批量替换文件内容,支持嵌套文件夹 import os path="./" fo ...
- 序列内置方法详解(string/list/tuple)
一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...
- python语言的格式框架_django框架模板语言使用方法详解
本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...
- Python 字符串方法详解
Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. 在编程中,几 ...
- 【Python入门】Python字符串的45个方法详解
Python中字符串对象提供了很多方法来操作字符串,功能相当丰富.必须进行全面的了解与学习,后面的代码处理才能更得心应手,编程水平走向新台阶的坚实基础.目前一共有45个方法,给大家分类整理,可以收藏查 ...
最新文章
- 2D简单图形相关算法罗列
- 反思耗时任务异步处理
- 求平方根sqrt()函数的底层算法效率问题
- 行为驱动开发BDD和Cucunber简介
- [转载] python基础:面向对象-封装
- Atitit 常见面试问题回答法 原则与细则 目录 1.1. 1、工作多久了?为什么离职?	1 1.2. 、自我评价	1 1.3. 问你有什么缺点	2 1.4. 4、理想薪资	2 1.5. 职业规
- mysql mysqldb_mysql模块mysqldb
- [应用代码] android 自动接听电话和挂断 (适合目前所有版本)
- html+css+JavaScript(菜鸟教程版本)学习笔记7.25
- 玩转电脑|电脑回收站还能这么玩,自定义图标让你的回收站与众不同
- 笔记:《高效能人士的七个习惯》第一章 由内而外全面造就自己
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增岗位管理-Web部分
- 不用iTunes也能添加音乐到iPod
- controller 之@...
- 代码格式规范化, 代码风格统一
- 12位早起的IT大佬们让小伙伴们都惊呆了
- 一程序员被网恋女友诈骗1.8万,警方调查“女友”后发现竟是...
- 解决HP 3055 一体机与U盘冲突
- 运动:灵魂要想走的远,身体必须在路上
- 88.162.110/C27.000006-web渗透-ctf.show web4 【总有人把后台地址写入robots,帮黑阔大佬们引路】
热门文章
- 2021:An Improved Attention for Visual Question Answering
- 不要悲观!勇敢面对逆境
- Python面向对象编程-类和实例
- What Makes a Video a Video :Analyzing Temporal Information in Video Understanding Models and Dataset
- 【stm32f407】硬件介绍
- (技术类)中标麒麟linux终端命令操作之小白不知道的点(1)
- 深度学习领域,你心目中 idea 最惊艳的论文是哪篇?
- shell 的大于等于小于等
- 【记录一下】解决Dataset not found
- 【Kotlin学习之旅】Kotlin实现101个C#的LINQ示例,让你领略一下Kotlin代码的魅力