广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS正则表达式替换字符串replace()方法实例代码
  • 333
分享到

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

2024-04-02 19:04:59 333人浏览 泡泡鱼
摘要

目录replace()方法介绍简单用法重点:函数替换补充:替换特殊字符总结replace()方法介绍 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()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

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

本文链接: https://www.lsjlt.com/news/153518.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • JS正则表达式替换字符串replace()方法实例代码
    目录replace()方法介绍简单用法重点:函数替换补充:替换特殊字符总结replace()方法介绍 replace()方法执行搜索替换操作。 它接收一个正则表达式作为第一个参数, ...
    99+
    2022-11-13
  • 使用正则表达式替换字符串的replace方法是什么
    这篇文章主要讲解了“使用正则表达式替换字符串的replace方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用正则表达式替换字符串的replace方法是什么”吧!正则表达式(reg...
    99+
    2023-06-03
  • Python正则表达式如何进行字符串替换实例
    Python正则表达式在使用中会经常应用到字符串替换的代码。有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获。 1.替换所有匹配的子串用newstring替换sub...
    99+
    2022-06-04
    字符串 实例 正则表达式
  • Idea使用正则表达式批量替换字符串的方法
    由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的id,导致现在维护困难。于是交给我任务,将这些id替换成静态变量。 这些id有十多种,分布在十个文件中,总共六十多处...
    99+
    2022-11-12
  • Python中怎么利用正则表达式替换字符串
    Python中怎么利用正则表达式替换字符串,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。替换所有匹配的子串用newstring替换subject中所有与正则表达...
    99+
    2023-06-17
  • IDEA怎么使用正则表达式批量替换字符串
    这篇文章主要介绍了IDEA怎么使用正则表达式批量替换字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。由于一开始的粗放扩张,公司项目代码里,遗留有很多类似魔法数的写死的id...
    99+
    2023-06-28
  • php如何实现正则表达式匹配一段字符串替换
    这篇文章主要介绍了php如何实现正则表达式匹配一段字符串替换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php实现正则表达式匹配一段字符串替换的方法:1、创建一个PHP示例...
    99+
    2023-06-21
  • php怎么实现正则表达式匹配一段字符串替换
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑php怎么实现正则表达式匹配一段字符串替换?PHP 正则表达式替换一部分内容preg_replace('/&topic=(.*)&type=/&#...
    99+
    2015-04-21
    php
  • ES6中正则表达式和字符串正则方法的示例分析
    这篇文章给大家分享的是有关ES6中正则表达式和字符串正则方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。RegExp构造函数在ES5中,RegExp构造函数的参数有两...
    99+
    2022-10-19
  • Dreamweaver如何实现正则表达式字符查找替换
    这篇文章给大家分享的是有关Dreamweaver如何实现正则表达式字符查找替换的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。打开“查找和替换”对话框 2.在“查找范围”选项中选择“文件夹”,然后选择要进行批量替换...
    99+
    2023-06-08
  • PHP中的preg_replace()函数:如何使用正则表达式替换字符串
    PHP中的preg_replace()函数:如何使用正则表达式替换字符串,需要具体代码示例在PHP中,preg_replace()函数是一个非常强大和灵活的函数,它允许我们使用正则表达式来搜索和替换字符串。无论是去除字符串中的特定字符,还是...
    99+
    2023-11-03
    正则表达式 preg_replace() 字符串替换
  • 正则表达式之字符串模式匹配实例详解
    目录前言什么是正则表达式字符范围匹配元字符多次重复匹配定位匹配贪婪模式与非贪婪模式表达式分组结语前言 今天我们来学习正则表达式,正则表达式的应用十分广泛,几乎每个涉及到交互的项目都会...
    99+
    2022-11-13
  • 如何使用Golang中的正则表达式库来进行字符串替换
    在Go语言中,正则表达式(Regular expression)可以帮助我们快速地实现字符串匹配、提取和替换等操作,从而提高代码的效率和可读性。在本文中,我们将探讨如何使用Golang中的正则表达式库来进行字符串替换。一、正则表达式基础在开...
    99+
    2023-05-14
  • 怎么使用Golang中的正则表达式库来进行字符串替换
    本篇内容主要讲解“怎么使用Golang中的正则表达式库来进行字符串替换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Golang中的正则表达式库来进行字符串替换”吧!一、正则表达式基础在...
    99+
    2023-07-05
  • Python正则表达式中字符串的实际操作方式
    本篇内容介绍了“Python正则表达式中字符串的实际操作方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python正则表达式字符串方法 ...
    99+
    2023-06-17
  • JAVA正则表达式及字符串的替换与分解相关知识总结
    JAVA正则表达式及字符串的替换与分解 Java 提供了 java.util.regex 包来与正则表达式进行模式匹配 java.util.regex 包主要包括以下三个类: Pat...
    99+
    2022-11-12
  • java正则表达式匹配字符串的方法是什么
    在Java中,我们可以使用正则表达式来匹配字符串,可以使用以下步骤实现:1. 导入`java.util.regex`包,该包包含了用...
    99+
    2023-08-09
    java
  • Java正则表达式匹配字符串并提取中间值的方法实例
    目录前言场景一:提取SAML2报文解析场景2:提取sql中的表名和字段总结前言 有时候正则表达式不只是匹配一下什么数字/邮箱/身份证/日期等等,还需要匹配某一段文字,并按照既定格式提...
    99+
    2022-11-13
  • JAVA正则表达式提取key-value类型字符值代码实例
    目录背景方括号表达式(用于确定取值范围):预定义字符匹配符:次数匹配符:边界匹配符:代码实例 1、分组2、惰性匹配和贪婪匹配3、分割符4、结束符总结背景 本人最近半年参与过...
    99+
    2022-11-13
  • Python使用正则表达式实现文本替换的方法
    本文实例讲述了Python使用正则表达式实现文本替换的方法。分享给大家供大家参考,具体如下: 2D客户端编程从某种意义上来讲就是素材组织,所以,图片素材组织经常需要批量处理,python一定是最佳选择,不管...
    99+
    2022-06-04
    文本 方法 正则表达式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作