Js的String的replace(和replaceAll(

EcmaJavascriptJs的String的 replace( 和 replaceAll( 方法

  • String.prototype.replace
  • String.prototype.replaceAll

相同点

  1. 都是String.prototype的函数
  2. 都是用于字符串替换
  3. 都是两个参数
  4. 第一个参数都可以是正则或字符串
  5. 第二参数都可以是字符串或者回调函数, 回调会传入一个参数, 参数是本次匹配到的内容
  6. 第二参数为字符串时,都可以用$&指代匹配到的内容

不同点

  1. 参数1的不同
    • replace的参1为字符串时,只匹配第一个,只匹配一次; 参1为正则时, 可通过标识g匹配一个或全部 ;
    • replaceAll的参1为字符串时,匹配全部; 为正则时, 必须带有全局标志g, 否则抛异常

在这里插入图片描述

  1. replace可以替换一个或所有, replaceAll只能替换所有




给匹配到的内容加上括号的例子

比如给字符串"abcdaabcdefgabcaabcdefg"中符合/aa/规则的内容加括号
以下代码等效

"abcdaabcdefgabcaabcdefg".replace(/aa/g , "($&)" );
"abcdaabcdefgabcaabcdefg".replaceAll(/aa/g , "($&)" );
"abcdaabcdefgabcaabcdefg".replaceAll("aa" , "($&)" );

也可以使用函数方式

replace(/aa/g , matcher=>"("+matcher+")");
replace(/aa/g , "($&)" );
replace(/aa/g , function(matcher){return "("+matcher+")";});
replaceAll(/aa/g , matcher=>"("+matcher+")");
replaceAll("aa" , matcher=>"("+matcher+")");
replaceAll(/aa/g , "($&)" );
replaceAll("aa" , "($&)" );
replaceAll(/aa/g , function(matcher){return "("+matcher+")";});
replaceAll("aa" , function(matcher){return "("+matcher+")";});




参数2的特殊字段

模式插入值
$$插入一个 "$"
$&插入匹配的子字符串。
$`插入匹配子字符串之前的字符串片段。
$'插入匹配子字符串之后的字符串片段。
$n插入第 n(索引从 1 开始)个捕获组,其中 n 是小于 100 的正整数。
$插入名称为 Name 的命名捕获组。










本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何选择合适的语音呼叫中心?

市场上不同的语音呼叫中心提供商,都有其独特的优势和不足。企业在选择语音呼叫中心服务公司时,主要考虑以下因素:服务质量、价格、技术支持、客户支持等。 首先,服务质量是选择语音呼叫中心需关注的最重要因素之一。 为确保语音…

Flink CEP完全指南:捕获数据的灵魂,构建智慧监控与实时分析大师级工具

Flink CEP(Complex Event Processing)是 Apache Flink 的一个库,用于实现复杂的事件流处理和模式匹配。它可以用来识别事件流中的复杂模式和序列,这对于需要在实时数据流中进行模式识别的应用场景非常有用,比如监控、异常检测、业务流程管理等。 在Flink CEP中,你可以定…

哈希查找【数据结构】

DS哈希查找—线性探测再散列 题目描述 定义哈希函数为H(key) key%11,输入表长(大于、等于11)。输入关键字集合,用线性探测再散列构建哈希表,并查找给定关键字。 输入 测试次数t 每组测试数据为: 哈希表长…

大数据StarRocks(四) :常用命令

这次主要介绍生产工作中Starrocks时的常用命令 4.1 连接StarRocks 4.1.1 Linux命令行连接 [roothadoop1011 fe]# yum install mysql -y [roothadoop1011 fe]# mysql -h hadoop101 -uroot -P9030 -p4.1.2 Windows客户端 DBeaver 连接 4.2 常用命令 4.2.1 查看状态 1. 查看f…

C/C++汇编学习(四)——编写不同的C++程序并分析其汇编输出

我们可以从一个简单的C代码示例开始,然后生成其对应的汇编代码并进行解析。这个过程不仅展示了C代码如何被转换成汇编语言,而且还帮助理解编译器是如何处理代码的。 案例一 C 代码示例 让我们使用一个简单的C代码示例:一个计算两个数之和的…

Linux 命令汇总

Linux 命令 1.查找命令 find /home/gitlab-runner/videofusionbe/api/logs/ -name ‘04-08.log’ -print 2.更换用户命令 Sudo - gitlab-runner 3.使用停止现有项目 sh rsbc.sh stop 4.启动现有项目 sh rsbc.sh start 5.启动日志 tail -f Web.log.2022-04-21.log 6.…

【Java项目】实战CRUD的功能整理(持续更新)

目录 前言1. MybatisPlus功能2. Excel处理3. 其他 前言 在实战中学习,整理每个功能细节以及各个函数的使用 对于Java的细节可看我之前的专栏:Java专栏 1. MybatisPlus功能 完整的CRUD可看我之前的文章: Springboot整合MybatisPlus的基本…

linux安装nodejs

一,yum安装 yum -y install nodejs 二,下载安装包安装 官网下载地址:Download | Node.js 建议安装低版本的,安装高版本的会有很多依赖,处理起来非常麻烦,还浪费时间 [rootmaster1 local]# wget https://…

【ArcGIS微课1000例】0086:基于七普人口数据的人口密度分析与制图

本文基于七普人口数据(省份、地级市、县区三级)进行人口密度计算分析与制图。 文章目录 一、人口密度介绍二、数据准备三、密度计算1. 投影转换2. 密度计算四、密度制图四、注意事项一、人口密度介绍 人口密度(density of population)是单位土地面积上的人口数量。通常使用的计…

C++类成员的访问控制

前言 本篇文章介绍C类成员的访问控制 关键字 C的类成员通过使用三个关键字来对成员的访问进行控制,并且只有这三个关键字: publicprivateprotected 使用场景 上面的三个关键字会扮演两种角色,也就是说会有两种使用的地方: …

【数值分析】插值法,lagrange插值,牛顿插值

1. 插值法介绍 插值法是一种通过已知数据点来估计未知数据点的方法。它通过构建一个函数或曲线,使其经过已知数据点,从而在数据点之间进行估计或预测。插值法的基本思想是假设已知数据点之间存在某种规律或趋势,并利用这种规律来推断未知数据…

全解析阿里云Alibaba Cloud Linux镜像操作系统

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版,针对阿里云服务器ECS做了大量深度优化,Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS,Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…

conda环境下Could not create share link解决方法

1 问题描述 在运行chatglm-6B项目时,运行python web_demo.py,出现如下错误: (chatglm) [rootlocalhost ChatGLM2-6B]# python web_demo.py Loading checkpoint shards: 100%|██████████████████████████████…

SwiftUI之深入解析如何创建一个灵活的选择器

一、前言 在 Dribbble 上找到的设计的 SwiftUI 实现时,可以尝试通过一些酷炫的筛选器扩展该项目以缩小结果列表。筛选视图将由两个独立的筛选选项组成,两者都有一些可选项可供选择。但是,在使用 UIKit 时,总是将这种类型的视图实…

Anaconda下调用ArcGIS的arcpy工具包

1.从64位切换到32位开发模式: set CONDA_FORCE_32BIT1 2. 创建2.7的环境 conda create -n py27 python2.7 3.将ArcGIS的目录C:\Python27\ArcGIS10.1\Lib\site-packages\Desktop10.1.pth直接拷贝到Anaconda3的目录里(C:\Users\xxx\Anaconda3\Lib\site-packages&a…

RK3568 学习笔记 : ubuntu 20.04 下 Linux-SDK 镜像烧写

前言 开发板:【正点原子】ATK-DLRK3568 开发板,编译完 Linux-SDK 后,生成了相关的镜像文件,本篇记录一下 镜像烧写,当前编译环境在 VMware 虚拟机中,虚拟机系统是 ubuntu 20.04 此次烧写还算顺利&#xff…

Callback Hook

一、Callback Hook 函数名:useCallback 用于得到一个固定引用值的函数,通常用它进行性能优化。 useCallback: 该函数只需要传入两个参数:一个回调函数和一个依赖数组即可。 1.函数,useCallback会固定该函数的引用,…

[USACO04OPEN] The Cow Lineup

题目描述 约翰的 N ( 1 ≤ N ≤ 100000 ) N ( 1 \leq N \leq 100000 ) N(1≤N≤100000) 只奶牛站成了一列。每只奶牛都写有一个号牌,表示她的品种,号牌上的号码在 1 … K &#x…

【C++】知识点汇总(上)

C知识点复习上 一、C 概述1. 基本数据类型2. 变量定义和访问3. 常量与约束访问 二、程序控制结构详解与示例1. 表达式2. 选择控制2.1 if 语句2.2 switch 语句 3. 循环控制3.1 for 循环3.2 while 循环3.3 do-while 循环 4. goto 语句5. 控制语句的嵌套 三、函数1. 函数的定义和调…

搜索二维矩阵 II(LeetCode 240)

1.问题描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10…