我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JS正则表达式替换字符串replace()方法实例代码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JS正则表达式替换字符串replace()方法实例代码

replace()方法介绍

replace()方法执行搜索替换操作。

它接收一个正则表达式作为第一个参数, 接收一个替换字符串作为第二个参数。

它搜索调用它的字符串, 寻找与指定模式匹配的文本。

如果正则表达式带g标志, replace()方法会替换字符串中的所有匹配项; 否则, 它只替换第一个匹配项。

如果replace()方法的第一个参数是一个字符串而非正则表达式, 这个方法会按照字面值进行搜索。

简单用法

let text = 'my name is hu,you NAME is zhang';

// 因为字符串是不可修改的对象所以要赋值给一个新变量, 也可以对其重新赋值
text = text.replace(/name/gi,'like'); // 标志g表示全局匹配,标志i表示不区分大小写

console.log(text); // my like is hu,you like is zhang

不过replace()方法的能力远不止这些。比如在正则表达式中用括号()分组的子表达式是从左到右编号的, 而且正则表达式能记住每个子表达式匹配的文本。如果替换字符串中出现了$符号后面跟一个数字(例如$1代表第一组子表达式), replace()会将这两个字符替换为指定的子表达式匹配的文本。

let str = 'abcdeABCDE';

// 其中$1代表第一组(b),$2代表第二组(c)
str = str.replace(/(b)(c)/gi,'b$1bc$2c');  // 给b两边来个b,给c两边来个c

console.log(str); // abbbcccdeAbBbcCcDE

如果正则表达式中使用的是命名捕获组, 则可以通过名字而非数字来引用匹配的文本, 如果使用命名捕获组就要把名字写到$<名字>中:

let str = 'abcdABCD';
str = str.replace(/(?<group1>bc)/gi,'[$<group1>]'); // 给bc套个中括号
console.log(str); // a[bc]dA[BC]D

重点:函数替换

除了给replace()的第二个参数传替换字符串, 还可以传一个函数, 这个函数会被调用然后用来计算替换的值, 如果匹配到多个值则会对每个值进行一次计算替换。这个替换函数在被调用时会接收几个参数, 第一个参数是匹配的整个文本:

let str = '小明有-100元,小李有5元,小张有-10元';
// 对其中的钱进行绝对值操作
str = str.replace(/-?\d+/g,function(s){
    let num = parseInt(s);
    if(num < 0){
        // 如果小于0就让它乘-1
        num *= -1; 
    }
    // 返回结果对其进行替换
    return num;
})
console.log(str); // 小明有100元,小李有5元,小张有10元

然后, 如果正则表达式有捕获组, 则后面几个参数分别是这些捕获组匹配的子字符串。对以上代码进行修改:

let str = '小明有-100元,小李有5元,小张有-10元';
// 对其中的钱进行绝对值操作
str = str.replace(/(\d+)|(-\d+)/g,function(s,first,last){ 
    // s代表匹配的整个字符串,first代表第一组为正数,last代表第二组为负数
    if(first){
        // 如果正数直接返回
        return first;
    }else{
        // 如果负数让其乘-1
        return parseInt(last)*-1;
    }
})
console.log(str); // 小明有100元,小李有5元,小张有10元

补充:替换特殊字符

要替换特殊字符,例如 -/\\^$*+?.()|[]{}),需要使用反斜杠对其转义。

如果给定字符串 this\\-is\\-my\\-url,要求把所有转义的减号( \\-)替换为未转义的减号(-)。

可以用 replace() 做到:

const myUrl = 'this\-is\-my\-url';
const newUrl = myMessage.replace(/\\-/g, '-');
console.log(newUrl); // this-is-my-url

或者用new Regexp():

const myUrl = 'this\-is\-my\-url';
const newUrl = myUrl.replace(new RegExp('\-', 'g'), '-');
console.log(newUrl); // this-is-my-url

在第二个例子中不必用反斜杠来转义反斜杠。

总结

到此这篇关于JS正则表达式替换字符串replace()方法的文章就介绍到这了,更多相关JS正则替换字符串replace()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JS正则表达式替换字符串replace()方法实例代码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用正则表达式替换字符串的replace方法是什么

这篇文章主要讲解了“使用正则表达式替换字符串的replace方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用正则表达式替换字符串的replace方法是什么”吧!正则表达式(reg
2023-06-03

Python正则表达式如何进行字符串替换实例

Python正则表达式在使用中会经常应用到字符串替换的代码。有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获。 1.替换所有匹配的子串用newstring替换subject中所有与正则表达式rege
2022-06-04

Python中怎么利用正则表达式替换字符串

Python中怎么利用正则表达式替换字符串,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.替换所有匹配的子串用newstring替换subject中所有与正则
2023-06-17

IDEA怎么使用正则表达式批量替换字符串

这篇文章主要介绍了IDEA怎么使用正则表达式批量替换字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的id
2023-06-28

php怎么实现正则表达式匹配一段字符串替换

php实现正则表达式匹配一段字符串替换的方法:1、创建一个PHP示例文件;2、通过“preg_replace('/&topic=(.*?)&type=/',"&topic={$data['topic']}&...)”方式进行替换即可。
2015-04-21

php如何实现正则表达式匹配一段字符串替换

这篇文章主要介绍了php如何实现正则表达式匹配一段字符串替换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php实现正则表达式匹配一段字符串替换的方法:1、创建一个PHP示例
2023-06-21

Dreamweaver如何实现正则表达式字符查找替换

这篇文章给大家分享的是有关Dreamweaver如何实现正则表达式字符查找替换的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.打开“查找和替换”对话框 2.在“查找范围”选项中选择“文件夹”,然后选择要进行批量
2023-06-08

PHP中的preg_replace()函数:如何使用正则表达式替换字符串

PHP中的preg_replace()函数:如何使用正则表达式替换字符串,需要具体代码示例在PHP中,preg_replace()函数是一个非常强大和灵活的函数,它允许我们使用正则表达式来搜索和替换字符串。无论是去除字符串中的特定字符,还是
PHP中的preg_replace()函数:如何使用正则表达式替换字符串
2023-11-03

Python正则表达式中字符串的实际操作方式

本篇内容介绍了“Python正则表达式中字符串的实际操作方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python正则表达式字符串方法
2023-06-17

怎么使用Golang中的正则表达式库来进行字符串替换

本篇内容主要讲解“怎么使用Golang中的正则表达式库来进行字符串替换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Golang中的正则表达式库来进行字符串替换”吧!一、正则表达式基础在
2023-07-05

Python使用正则表达式实现文本替换的方法

本文实例讲述了Python使用正则表达式实现文本替换的方法。分享给大家供大家参考,具体如下: 2D客户端编程从某种意义上来讲就是素材组织,所以,图片素材组织经常需要批量处理,python一定是最佳选择,不管是win/linux/mac都有一
2022-06-04

编程热搜

目录