JS 中 replace 和 replaceAll 的区别?

2023-11-07

方法解释

两种方法都返回一个新字符串,原始字符串保持不变。并且改方法可以传两个参数。

参数一:pattern。 pattern 可以是一个 字符串 或一个 正则表达式

参数二:replacement。 replacement 可以是一个字符串或一个在每次匹配被调用的函数。

下面以参数一 pattern 传参类型不同来做区分。

1. 当 pattern 是字符串,有区别。

当 pattern 是字符串时,replace 只替换匹配到的第一个位置,replaceAll 会替换每一个匹配到的地方。代码如下:

var value = '123-234-234-234'
var pattern = '-'
console.log('replace: ' + value.replace(pattern, '/'))   
console.log('replaceAll: ' + value.replaceAll(pattern, '/'))

// 输出:
// replace: 123/234-234-234
// replaceAll: 123/234/234/234

2. 当 pattern 都是正则表达式时,没有区别。

var value = '123-234-234-234'
var pattern = /-/g
console.log('replace: ' + value.replace(pattern, '/'))   
console.log('replaceAll: ' + value.replaceAll(pattern, '/'))

// 输出:
// replace: 123/234/234/234
// replaceAll: 123/234/234/234

除此之外,两个函数的第二个参数都可以传入一个函数,用来自定义替换规则。

var value = '123-234-234-234'
var pattern = '-'
value.replace(pattern, (item, index) => {
	// item 替换元素,index 替换元素的下标
	console.log(item, index)
	return '/'
})

// 输出:
// - 3
// 123/234-234-234
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS 中 replace 和 replaceAll 的区别? 的相关文章

  • 在 ajax 完成之前阻止提交

    我正在使用 jQuery 并且我希望在所有 ajax 调用完成之前表单提交不会起作用 我想到的一种方法是存储一个布尔值 该值指示是否有 ajax 请求正在进行 在每一个结束时它都会被设置为 false 我不确定这是否是最好的方法 所以我将不
  • 主干关系事件未触发?

    class TheModel extends Backbone RelationalModel relations type Backbone HasMany key subModels relatedModel SubModel coll
  • 如何理解 Angular JS 中的控制台错误消息?有什么工具吗?

    我是 Angular JS 的新手 我的第一个问题是如何理解 Angular JS 中控制台的错误消息 我编写了这段用于匹配密码的代码片段 它在控制台上抛出错误 但它工作正常 它是有线的 我无法从这些控制台消息中理解任何内容 谁能指出我为什
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 计算Javascript中两次点击之间的时间

    我想用 javascript 计算属性的两次点击之间的时间 但我不知道如何 例如 a href click here a 如果用户单击多次 假设 5 秒内 我想显示警报 如果有帮助的话我正在使用 jQuery 我对 javascript 不
  • 将一个文本框的内容复制到另一个文本框

    假设在文本框中输入了一个条目 是否可以在第二个文本框中保留相同的输入文本 如果是这样 这是如何完成的
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • Flask wtf.quick_form 运行一些 javascript 并设置表单变量

    我正在创建博客文章 到目前为止已经使用普通的 html 表单完成了 我所做的一个有趣的想法是运行 javascript onclick 并使用页面中的额外数据在表单中设置一个隐藏变量 这很好地传递到服务器并通过 request form 获
  • 未捕获的引用错误:myFunction 未定义[重复]

    这个问题在这里已经有答案了 这到底是怎么回事 http jsfiddle net sVT54 http jsfiddle net sVT54
  • 在 MVC Razor 中的 C# 和 Javascript 之间共享常量

    我想在服务器上的 C 和客户端上的 Javascript 中都使用字符串常量 我将常量封装在 C 类中 namespace MyModel public static class Constants public const string
  • 如何记录返回的事件发射器

    如何记录所发出的事件stream返回于MyFunc 与 JSDoc MyFunc description param Object opts description return Stream description function My
  • 使react-leaflet能够离线使用

    我一直在使用反应传单 https github com PaulLeCam react leaflet图书馆 到目前为止运作良好 现在我希望网站预加载尽可能多的图块 以便网络应用程序 也是 PWA 可以在没有互联网的情况下使用 我找到了一些
  • iframe 重新加载按钮

    我浏览了很多网站 但似乎没有一个能正常工作 或者我不明白它们 我想要一个刷新某个 iframe 的简单按钮 该按钮将位于父页面上 并且 iframe 名称为 Right 有很多方法可以做到这一点 假设这个iframe markup 我们可以
  • 如何从顺序键盘导航中删除 Vuetify 附加图标

    在带有 Vuetify 的 Vue js 应用程序中 我有一组用v text field并且其中有一个append icon为了切换文本可见性 如下所示
  • 是否可以使用打字稿映射类型来创建接口的非函数属性类型?

    所以我正在研究 Typescript 的映射类型 是否可以创建一个接口来包装另一种类型 从而从原始类型中删除函数 例如 interface Person name string age number speak void type Data
  • ng-model 和值组合不适用于输入文本框

    我有两个输入文本框 我需要组合在两个文本框中输入的值并将其显示在第三个文本框中 如果我只使用value在第三个文本框中 Box 1
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1

随机推荐

  • 2021-03-17

    由结果导原因 过程自己清楚就好 没必要和不在同一个意识形态的人说任何话 重要的克制自己 最重要的是提升自己 记2021年3月17日 周三
  • MySQL与Oracle如何insert into多个values

    一 Oracle一次插入多条记录 方式1 要向数据库中写入多条记录 记录集已经确定 如果一次一次插入势必影响效率 解决方法 注意 上面最后一个select之后没有union all 否则报错 方式2 二 MySQL中可以使用如下格式的插入语
  • mpvue 同一个路由只有一个实例,页面切换瞬间可以看到数据闪烁改变 闪一下之前页面的数据

    在使用mpvue的时候遇到页面数据闪烁 原因 猜测是 因为页面数据是存在于 js 中 切换页面的时候是会把数据 setData 到 render 进程中 可能有个老数据显示的闪现 解决 1 可以在 onHide 的时候重置数据或者在进入页面
  • 重写Unity的Button实现双击、长按、单击等功能

    using System using System Collections using System Collections Generic using UnityEngine EventSystems using UnityEngine
  • unity中在触控屏中Input.GetAxis("Mouse X")判断出现失误

    在pc端中可以通过Input GetAxis Mouse X 或Input GetAxis Mouse Y 判断鼠标移动的方向 但在触控屏中 以Input GetAxis Mouse X 或Input GetAxis Mouse Y 判断单
  • Mysql学习(二)-- 事务和锁

    1 事务 1 1 什么是数据库事务 事务是一个不可分割的数据库操作序列 也是数据库并发控制的基本单位 其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态 事务是逻辑上的一组操作 要么都执行 要么都不执行 事务最经典也经常被拿出来说
  • Java代码审计前置知识——SpringBoot基础

    目录 前言 一 SpringBoot简介 1 1 回顾什么是Spring 1 2 Spring是如何简化Java开发的 1 3 什么是SpringBoot 二 微服务 2 1 什么是微服务 2 2 单体应用架构
  • 服务超时、重试次数、熔断如何设置

    文章目录 一 超时时间 为什么要设置超时时间 超时时间怎么设置 二 重试次数怎么设置 三 熔断 工作流程 一 超时时间 为什么要设置超时时间 针对服务调用都要设置一个超时时间 以避免依赖的服务迟迟没有返回调用结果 把服务消费者拖死 超时时间
  • VS设置编码格式

  • RUBY易忘语法速查

    collect 迭代器 a 1 2 3 4 5 b a collect x 10 x putsb
  • 可以一口气读完的算法书

    算法 Algorithms 咳咳 很多人一听到这个词 估计脑袋就要炸了 一定又是复杂极了的东西 看来此书必定翻不过第一节 就要睡着了 没错 很多算法书虽然写得很精妙 但凭我这种智商一口气最多只能看5到10 页 就会乖乖滚回去睡觉了 不少读者
  • 写出更优雅的react组件(避免重复渲染)

    写出更优雅的react组件 一 存在问题 二 解决办法 类组件的解决方法 1 shouldComponentUpdate React 类组件的一个生命周期 2 PureComponent Immutable js 进阶版 1 为什么有了Pu
  • MES系统生产过程管理解决方案,主要包含哪些功能模块?

    MES生产过程管理 是从生产任务 生产工单下发 生产领料 生产报工 生产进度分析 计件工资管理等环节进行管控 并为管理人员提供生产看板 直观掌握生产情况 生产计划 工单管理 在下发生产任务 生产工单时 就已经把材料的总耗用量 每个工单 每个
  • vue中使用Ueditor编辑器

    vue中使用Ueditor编辑器 一 下载包 从Ueditor的官网下载1 4 3 3jsp版本的Ueditor编辑器 官网地址为 https github com fex team ueditor 下载解压后会得到如果下文件目录 将上述U
  • 【满分】【华为OD机试真题2023 JAVA&JS】查找树中元素

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 查找树中元素 知识点树BFS搜索广搜 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 已知树形结构的所有节点信息 现要求根据输入坐标 x y 找到该节点保存的内容
  • 全国紧跟数字中国步伐,用数字技术守护生命,共同见证国家治理现代化转型

    为了每个人都迈向美好的生活 为了国家治理的现代化 我国正紧锣密鼓地在数字经济 数字社会 和数字政府三大维度推进千行百业的信息化进程 这一行动也旨在落实我国 数字中国2025 的宏伟规划 数字中国 的核心包括数字化 网络化和标准化 它不仅仅体
  • 计算机内存调用优化,内存数据库的使用方法与优化方案分析

    数据存储都是保存在硬盘中的 而内存只是一个数据暂时存储和调用的缓冲地带 今天我们就一起来了解一下 关于内存缓存数据存储都有哪些问题需要了解 Redis是一种内存数据库 将数据保存在内存中 读写效率要比传统的将数据保存在磁盘上的数据库要快很多
  • 分治算法——求逆序对数

    分治求逆序对数 问题描述 在Internet上的搜索引擎经常需要对信息进行比较 比如可以通过某个人对一些事物的排名来估计他对各种不同信息的兴趣 从而实现个性化服务 对于不同的排名结果可以用逆序来评价他们之间的差异 考虑1 2 n的排列i1
  • 【目标检测】42、目标检测回顾

    文章目录 Abstract 1 Introduction 2 Problem Setting 3 Detection Components 3 1 Detection Settings 3 2 Detection Paradigms 3 2
  • JS 中 replace 和 replaceAll 的区别?

    方法解释 两种方法都返回一个新字符串 原始字符串保持不变 并且改方法可以传两个参数 参数一 pattern pattern 可以是一个 字符串 或一个 正则表达式 参数二 replacement replacement 可以是一个字符串或一