【JavaScript】字符串的正则匹配和替换

文章目录

    • 1. 字符串的正则匹配
      • 1.1 `test()` 方法
      • 1.2 `match()` 方法
    • 2. 字符串的正则替换
      • 2.1 替换所有匹配项
      • 2.2 使用匹配组
      • 2.3 使用函数进行替换
    • 3. 常见应用场景
      • 3.1 删除非数字字符
      • 3.2 格式化货币
    • 4. 总结

在 JavaScript 中,字符串的正则匹配和替换是常见的操作,尤其在处理文本数据时。正则表达式作为强大的模式匹配工具,在字符串处理中发挥着关键作用。本篇博客将介绍 JavaScript 中字符串的正则匹配和替换,帮助你更好地理解和运用这一强大的特性。

1. 字符串的正则匹配

在 JavaScript 中,可以使用正则表达式进行字符串的匹配操作。常见的方法包括 test()match()

1.1 test() 方法

test() 方法用于测试字符串是否匹配指定的正则表达式,返回布尔值。

const pattern = /\d+/;  // 匹配一个或多个数字
const text = 'There are 123 apples and 456 oranges.';console.log(pattern.test(text));  // 输出:true

1.2 match() 方法

match() 方法用于返回字符串中与正则表达式匹配的结果,返回一个数组。

const pattern = /\d+/;  // 匹配一个或多个数字
const text = 'There are 123 apples and 456 oranges.';console.log(text.match(pattern));  // 输出:[ '123', index: 10, input: 'There are 123 apples and 456 oranges.' ]

2. 字符串的正则替换

在JavaScript中,可以使用 replace() 方法进行字符串的正则替换。该方法可以接受正则表达式作为匹配规则,并用指定的字符串替换匹配到的部分。

2.1 替换所有匹配项

使用全局匹配标志 g,可以替换所有匹配项。

const pattern = /\d+/g;  // 全局匹配一个或多个数字
const text = 'There are 123 apples and 456 oranges.';const replacedText = text.replace(pattern, 'X');
console.log(replacedText);  // 输出:There are X apples and X oranges.

2.2 使用匹配组

正则表达式中的匹配组可以用于捕获匹配的子字符串,并在替换中使用。

const pattern = /(\d+) (\w+)/;  // 匹配数字和单词
const text = 'There are 123 apples and 456 oranges.';const replacedText = text.replace(pattern, '$2 $1');
console.log(replacedText);  // 输出:There are apples 123 and oranges 456.

2.3 使用函数进行替换

可以使用一个函数作为 replace() 方法的第二个参数,根据匹配结果进行动态替换。

const pattern = /\d+/g;  // 全局匹配一个或多个数字
const text = 'There are 123 apples and 456 oranges.';const replacedText = text.replace(pattern, match => parseInt(match) * 2);
console.log(replacedText);  // 输出:There are 246 apples and 912 oranges.

3. 常见应用场景

3.1 删除非数字字符

const pattern = /\D/g;  // 匹配非数字字符
const text = 'abc123def456';const cleanedText = text.replace(pattern, '');
console.log(cleanedText);  // 输出:123456

3.2 格式化货币

const pattern = /(\d)(?=(\d{3})+$)/g;  // 匹配千位分隔符
const amount = 1234567;const formattedAmount = amount.toString().replace(pattern, '$1,');
console.log(formattedAmount);  // 输出:1,234,567

4. 总结

字符串的正则匹配和替换是 JavaScript 中常见而强大的操作,通过合理运用正则表达式,你可以轻松实现字符串的处理和转换。本篇博客深入讨论了字符串的正则匹配和替换的基本方法,包括 test()match()replace() 等,以及一些常见应用场景。希望通过本篇博客,你对 JavaScript 中字符串的正则匹配和替换有了更深入的了解,并能在实际项目中灵活应用这些技巧。

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

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

相关文章

【K-means聚类】

K-means聚类python代码实现 聚类k-means聚类代码 聚类 定义:聚类是一种无监督的机器学习方法,它的主要目的是将数据集中的对象(或点)按照它们之间的相似性分组或聚类。这些聚类(或称为簇)中的对象在某种度…

Docker技术仓库

数据卷 为什么用数据卷? 宿主机无法直接访问容器中的文件容器中的文件没有持久化,导致容器删除后,文件数据也随之消失容器之间也无法直接访问互相的文件 为解决这些问题,docker加入了数据卷机制,能很好解决上面问题…

FPGA模块——IIC接口设计

FPGA模块——IIC接口设计 IIC协议IIC接口代码应用IIC接口的代码 IIC协议 IIC接口代码 module iic_drive#(parameter P_ADDR_WIDTH 16 )( input i_clk ,//模块输入时钟input i_rs…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第八天-高级驱动framebuffer(物联技术666)

链接:https://pan.baidu.com/s/1cd7LOSAvmPgVRPAyuMX7Fg?pwd1688 提取码:1688 帧缓冲(framebuffer)设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer,所以目前在linux环境下开发图形化界面…

python opencv图像模糊

目录 一:均值滤波 二:高斯滤波 三:中值滤波 四:双边滤波 在OpenCV中,模糊图片或进行图像平滑处理时常用的方法包括以下几种: 均值滤波 (Blurring): 均值滤波是一种简单的平滑方法,它通过对图像中每个像素的邻域内像素值进行平均来计算新的像素值。在OpenC

ABC341 题解

ABC341 题解 A Description 给定一个数 N N N,求长度 2 N 1 2N1 2N1 的 01 交替的字符串(0 开始)。 Solution 直接模拟,注意 0-index 是 i m o d 2 i\bmod 2 imod2,1-index 是 ( i 1 ) m o d 2 (i1) \bmod …

js-Vue Router 中的方法,父A-子B-子C依次返回,无法返回到A,BC中形成循环跳转解决

1.常用的方法 在 Vue Router 中,有一些常用的方法用于实现路由导航和管理。以下是一些常见的 Vue Router 方法及其作用: push: router.push(location, onComplete, onAbort) 作用:向路由历史记录中添加一个新条目,并导航到指定的路…

算法-位运算

题目&#xff1a;题目5 一个数组中有一种数出现K次&#xff0c;其他数都出现了M次&#xff0c; M > 1, K < M 找到&#xff0c;出现了K次的数&#xff0c; 要求&#xff0c;额外空间复杂度O(1)&#xff0c;时间复杂度O(N) 思路&#xff1a;遍历数组按位计数&#xff0c;不…

SRS关闭无人观看的流

这里需要使用到SRS自身自带的钩子回调功能&#xff0c;配置文件中有标注&#xff1a; Hook函数&#xff1a; 分为on_publish、on_play、on_stop、on_unpublish、on_dvr等类别&#xff1b; 其中主要介绍on_play、on_stop on_play&#xff1a; 主要用于用户在对srs拉流进行播…

十六进制数

1.做一个收电费程序&#xff0c;要求输入使用的电的度数&#xff08;整数&#xff09;以及电费单价&#xff08;实数&#xff09;&#xff0c;输出总的用电费用。 2.提示并输入一个小写字母数据&#xff0c;输出其对应的ASCII值&#xff0c;以及该小写字母对应的大写字母。 3.提…

Spring设计模式之工厂模式创建Bean对象

BeanFactory和Application是Spring容器中创建和管理Bean对象的接口&#xff0c;但是它们的实现方式不同。 BeanFactory&#xff1a; BeanFactory采用延迟初始化策略&#xff0c;只有应用程序向容器请求特定的Bean时才创建该Bean对象。它的启动速度很快&#xff0c;但在程序运…

MySQL、Redis、Nginx配置优化

文章目录 一、MySQL二、Redis三、Nginx 一、MySQL mysql.cnf [mysqld] binlog_cache_size 128K thread_stack 256K join_buffer_size 2048K max_heap_table_size 512Mdefault_storage_engine InnoDB performance_schema_max_table_instances 400 table_definition_cach…

leetcode hot100组合综合四

本题中&#xff0c;是要求nums中求的总和为target的排列数&#xff0c;因为题中说了&#xff0c;元素顺序不同&#xff0c;则可以视为不同的结果之一。 所以&#xff0c;根据对背包问题的总结&#xff0c;本题中元素可以重复使用&#xff0c;是完全背包并且需要求排列数&#…

.net 微服务 服务保护 自动重试 Polly

1. 概要 实验服务保护&#xff0c;自动重新连接功能。 2.代码 2.1 重复工具 using Polly; using Polly.Retry; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks;namespace WebApplication2 {pu…

c# DotNetty

对于 .NET 开发者来说&#xff0c;DotNetty 是一个开源、高性能的网络库&#xff0c;它是对 Java 平台上流行的 Netty 异步事件驱动网络应用程序框架的一个端口。DotNetty 适用于创建各种网络应用程序&#xff0c;如 IoT (物联网)、游戏服务器以及消息传递系统等。 以下是对 Do…

Redis之缓存击穿问题解决方案

文章目录 一、书接上文二、介绍三、解决方案1. 单例双检锁2. 缓存预热和定时任务 一、书接上文 Redis之缓存雪崩问题解决方案 二、介绍 缓存击穿就是大量并发访问同一个热点数据&#xff0c;一旦这个热点数据缓存失效&#xff0c;则请求压力都来到数据库。 三、解决方案 1…

Redis命令和Redisson对象匹配列表

大家好&#xff0c;Redisson系列再发一文。 多克创新国庆福利继续发&#xff0c;有需要的可以前往官网了解详情&#xff01;&#xff01;&#xff01; Redis命令Redisson对象方法AUTHConfig.setPassword();APPENDRBinaryStream.getOutputStream().write()BITCOUNTRBitSet.ca…

嵌入式Qt 计算器核心算法_1

一.表达式分离算法分析 二.分离算法实现 QCalculatorDec.cpp #include "QCalculatorDec.h"#include <QDebug>QCalculatorDec::QCalculatorDec() {m_exp "";m_result "";QQueue<QString> r split("9.11 ( -3 - 1 ) * -5 &…

C#,整数转为短字符串(Short string)的加解密算法与源代码

1 整数转为短字符串的应用 网站生成的动态 URL 往往以内容序列号id为标识与参数&#xff0c;比如&#xff1a; http://www.jerry.com/tom.aspx?id1 使用 Web Rewrite&#xff0c;可以实现网页静态化&#xff0c;称为&#xff1a; http://www.jerry.com/content/1.html 对…

数学家的趣闻轶事15则

目录 前言趣闻轶事15则参考文献 前言 有人的地方就有江湖&#xff0c;有江湖的地方就有故事。数学本身就是一个江湖&#xff0c;这个江湖也充满着血雨腥风和侠骨柔情&#xff0c;至今流传着各种各样的传说&#xff0c;其中不乏”马踏江湖潇潇事“&#xff0c;也有"何当共…