当前位置: 首页 > 网络知识

JS中的replace方法

时间:2026-01-29 09:27:40

简介

用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
该方法返回一个新的字符串,但不改变原字符串
签名:replace([RegExp|String],[String|Function])
RegExp: 正则表达式

使用

replace(String, String)
let str = "叼毛1号: 亚索, 叼毛2号: 永恩" str = str.replace('叼毛', '靓仔') console.log(str) // "靓仔1号: 亚索, 叼毛2号: 永恩"

此方法的缺陷是,一次调用只能替换第一个匹配到的字符串;全部替换需要多次调用
一劳永逸的方法是第一个入参使用RegExp正则表达式,并全局匹配

replace(RegExp, String)
let str = "叼毛1号: 亚索, 叼毛2号: 永恩" // 匹配“叼毛”,并添加修饰符g去全局匹配 const reg = /叼毛/g str = str.replace(reg, '靓仔') console.log(str) // "靓仔1号: 亚索, 靓仔2号: 永恩"

如此,两兄弟都成为靓仔?‍♂️啦

replace(RegExp, Function)

2.2可实现的功能比较简单,若需要做复杂一些的字符串替换操作,需要使用正则+function

实现2.2的写法
let str = "叼毛1号: 亚索, 叼毛2号: 永恩" const reg = /叼毛/g str = str.replace(reg, function() ) console.log('str:', str)

log信息:
分析:打印了2次arguments,是因为匹配了两次
参数

RegExp使用分组时

一个分组:

let str = "叼毛1号: 亚索, 叼毛2号: 永恩" // 添加分组(\d号) const reg = /叼毛(\d号)/g str = str.replace(reg, function() ) console.log('str:', str)

log信息:
参数

两个分组:

let str = "叼毛1号: 亚索, 叼毛2号: 永恩" // 添加分组(\d号) (:) const reg = /叼毛(\d号)(:)/g str = str.replace(reg, function() ) console.log('str:', str)

log信息:
参数

结论:replace方法的两个入参为RegExp和function时,function的参数为:

示例

小写数字替换成大写数字
let str = '今年是2023年' const arr = ['零', '壹', '贰', '叁', '肆', '伍', '陆','柒', '捌', '玖', '拾'] str = str.replace(/\d/g, function() ) console.log(str)

模版引擎超简陋版
let str = 'my name is , my age is , i ce fr , i love ~~~' const ary = ['iceman', '26', 'China', 'javascript'] str = str.replace(//g , function () ); console.log(str) // "my name is iceman, my age is 26, i ce fr China, i love javascript ~~~"

新增

  1. RegExp正则匹配有分组项,第二个参数使用 对应的分组index$直接获取替换
let str = 'xuxi is xuxi is' let reg = /(xuxi) (is) \1 \2/g str.replace(reg, '$1 $2') // xuxi is (2) // $1: 对应第一个分组项(xuxi) // $2: 对应第二个分组项(is) // 所以结果为: xuxi is

上一篇:Django 框架
下一篇:Vue-iclient-MapboxGl在vue2中的按需引入
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素