JavaScript replace字符串替换函数的用法

2023-10-29

replace
语法 stringObj.replace(rgExp, replaceText)
stringObj 必选项。要执行该替换的 String 对象或文字。该对象不会被 replace 方法修改。
rgExp 必选项。描述要查找的内容的一个正则表达式对象。
replaceText 必选项。是一个String 对象或文字,对于stringObj 中每个匹配 rgExp 中的位置都用该对象所包含的文字加以替换。
例如:

<script language="JavaScript">
var strM = "javascript is a good script language";
//在此我想将字母a替换成字母A
alert(strM.replace("a","A"));
</script>
这样只能替换第一个“a”字母

<script language="javascript">
var strM = "javascript is a good script language";
//在此将字母a全部替换成字母A
alert(strM.replace(/a/g,"A"));
</script>
这样可以替换所有“a”字母。其中g为全局标志


JavaScript--正则表达式

  正则表达式(regular expression)对象包含一个正则表达式模式(pattern)。它具有用正则表达式模式去匹配或代替一个串(string)中特定字符(或字符集合)的属性(properties)和方法(methods)。

正则表达式构造函数: new RegExp("pattern"[,"flags"]);
参数说明:
pattern -- 一个正则表达式文本
flags -- 如果存在,将是以下值:
g: 全局匹配
i: 忽略大小写
gi: 以上组合

在构造函数中,一些特殊字符需要进行转意(在特殊字符前加"\")。正则表达式中的特殊字符:
字符 含意
\ 转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为

匹配一个单词的边界。
-或-
对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/

将只匹配"a*"。
^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba*/将匹配b,ba
(x) 匹配x保存x在名为$1...$9的变量中
x|y 匹配x或y
{n} 精确匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[^xyz] 不匹配这个集合中的任何一个字符
[\b] 匹配一个退格符
\b 匹配一个单词的边界
\B 匹配一个单词的非边界
\cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M
\d 匹配一个字数字符,/\d/ = /[0-9]/
\D 匹配一个非字数字符,/\D/ = /[^0-9]/
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
\t 匹配一个制表符
\v 匹配一个重直制表符
\w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"

中的5,等于[a-zA-Z0-9]
\W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。

说了这么多了,我们来看一些正则表达式的实际应用的例子:
HTML代码的屏蔽

function mask_HTMLCode(strInput) {
var myReg = /<(\w+)>/;
return strInput.replace(myReg, "<$1>");
}
E-mail地址验证:
function test_email(strEmail) {
var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
if(myReg.test(strEmail)) return true;
return false;
}

正则表达式对象的属性及方法:
预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext,

rightContext和$1到$9。其中input和multiline可以预设置。其他属性的值在执行过exec或test方法后被根据

不同条件赋以不同的值。许多属性同时拥有长和短(perl风格)的两个名字,并且,这两个名字指向同一个值。(

JavaScript模拟perl的正则表达式)

正则表达式对象的属性:
属性 含义
$1...$9 如果它(们)存在,是匹配到的子串
$_ 参见input
$* 参见multiline
$& 参见lastMatch
$+ 参见lastParen
$` 参见leftContext
$''          参见rightContext
constructor    创建一个对象的一个特殊的函数原型
global       是否在整个串中匹配(bool型)
ignoreCase     匹配时是否忽略大小写(bool型)
input        被匹配的串
lastIndex     最后一次匹配的索引
lastParen     最后一个括号括起来的子串
leftContext    最近一次匹配以左的子串
multiline     是否进行多行匹配(bool型)
prototype     允许附加属性给对象
rightContext    最近一次匹配以右的子串
source       正则表达式模式
lastIndex     最后一次匹配的索引

正则表达式对象的方法:
方法 含义
compile      正则表达式比较
exec        执行查找
test        进行匹配
toSource      返回特定对象的定义(literal

representing),其值可用来创建一个新的对象。重载Object.toSource方法得到的。
toString      返回特定对象的串。重载Object.toString方法得到的。
valueOf      返回特定对象的原始值。重载Object.valueOf方法得到


例子:

<script language = "JavaScript">
var myReg = /(w+)s(w+)/;
var str = "John Smith";
var newstr = str.replace(myReg, "$2, $1");
document.write(newstr);
</script>
将输出"Smith, John"

参考网址:
[url]http://blog.csdn.net/chenwei160803/article/details/7000225[/url]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript replace字符串替换函数的用法 的相关文章

  • JavaScript 在数组中查找

    我有一个像这样的数组 var movies Name The Red Violin ReleaseYear 1998 Director Fran ois Girard Name Eyes Wide Shut ReleaseYear 1999
  • JavaScript 调用函数

    我最近一直在测试一些代码 试图更好地理解 javascript 然后我遇到了call 我无法很好地理解的功能 我有以下代码 function hi console log hi var bye function param param2 c
  • 禁用 jquery-chosen 下拉菜单

    我有一个正在使用的选择 div选择jquery插件 http harvesthq github io chosen 设计样式并添加功能 最值得注意的是搜索 div 看起来像这样
  • Node.js npm mssql 函数返回未定义

    我使用 mssql 和 node js 连接到 sql server 数据库 我试图通过将连接代码包装在具有一个查询参数的函数中来减少代码 当我从 router get 函数中的 with 调用该函数时 它返回未定义 任何帮助将非常感激 f
  • Leaflet.js setMaxBounds 忽略南界

    Using 传单 js http leafletjs com reference html对于开源地图项目 但我需要设置用户无法超越的特定界限 地图对象的 maxBounds 属性在北 东 西方向上按预期工作 但它让我永远向南滚动 在小提琴
  • 在 Angular 中将图像 url 转换为 base64

    我正在努力尝试将给定的图像 url 转换为 base64 在我的例子中 我有一个带有图像路径的字符串 var imgUrl assets logoEmpresas empresa logoUrl 我如何直接将给定的图像网址转换为base64
  • Chrome DevTools 脚本黑盒不起作用

    我正在尝试使用 chrome devtools 的新功能 黑盒脚本 这篇 Chrome Devtools 文章列出了脚本黑盒功能 https developer chrome com devtools docs blackboxing wh
  • Postman如何发送请求? ajax,同源策略

    我发现了这个非常有用的 Chrome 扩展程序 名为 Postman 这是一个非常有用的扩展 特别是当您正在编写 RESTful 应用程序时 我感到困惑的一件事是这个插件 扩展如何能够在不同的域上成功发送 POST 请求 我尝试像这样使用
  • jQuery:在方法上取消绑定 jQuery 2.0

    在 jQuery 1 9 中live 已被弃用 因此新方法变为 document on mouseover blahblahfunc 我无法解除 blahblahfunc 的绑定 通过 unbind mouseover mouseout c
  • 如何将 !important 添加到 CSS-in-JS (JSS) 类属性?

    我正在尝试使用一些 CSS in JS 类这个答案 https stackoverflow com questions 54525334 how can i change the label size of a material ui te
  • Mustache javascript:如何处理布尔值

    我有一个 JavaScript 对象obj键的值可以是true or false 该值被传递给 Mustache 模板 JavaScript 对象 obj like true or false 模板 span like span 现在我希望
  • 在 JavaScript 中给变量字符串加上引号

    我有一个 JavaScript 变量 var text http example com 文本可以是多个链接 如何在变量字符串周围放置 例如 我希望字符串看起来像这样 http example com var text http examp
  • Angular 8 - 删除 ng-component 标签 - 表行模板

    我有一个灵活的表格组件 有两种模式 普通表 有效 自定义行模板 这不是因为角度添加
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • (jQuery) 在 cookie 中单击时保存复选框状态

    关于此功能有很多主题 但我似乎无法让它工作 我在谷歌上搜索了这个具体案例 有一堆链接让我来到这里 但奇怪的是我似乎无法让它们工作 我所做的唯一工作如下 http dl dropbox com u 2238080 a old z htm ht
  • 在画布中的鼠标位置放大/缩小

    我正在尝试使用 p5 js 实现缩放功能 当前缩放级别以及 x 和 y 位置存储在controls view目的 默认位置或 0 0 位置位于左上角 问题是调整放大 缩小时的 x 和 y 位置值 以便无论视图的当前位置是什么 它都会停留在缩
  • 脚本和链接标签的简写 http:// 为 // ?有人以前看过/用过这个吗?

    问题如下 如果您使用 addthis 共享按钮 查看任何网站 一旦您浮动在 addthis 按钮上 并且加载了所有必需的资源 请使用 firebug 或 chrome 检查器查看文档的正文 不是源代码 而是屏幕上的实际文档 对象检查器 你会
  • 监听鼠标事件……除了 div 的溢出:滚动滚动条?

    关于如何监听 mousedown 的任何建议 document exceptdiv 的溢出 滚动滚动条 我不确定滚动条是什么元素is为了参考它 您可以使用以下命令自行检查目标 document on mousedown function e
  • 在客户端将大文件(> 2GB)压缩为 ZIP

    我使用构建上传工具node js and socket io 因为他们通常会上传令人难以置信的巨大文件 而普通的上传表单将无法工作 问题是他们想在发送之前将文件压缩成zip 以提高传输效率 我一直在研究压缩方法 例如JSZip http s
  • 推荐的增长缓冲区的方法?

    假设我正在 Node js 中构造一个可变长度的字符串或一系列字节 buf write 的文档说 https nodejs org api buffer html buffer buf write string offset length

随机推荐

  • Windows平台在线安装Qt 6.0.0图文教程

    0 前言 2020年12月8日Qt官方宣布正式发布Qt 6 0 0 是全新Qt 6系列的首个版本 是Qt的一个重要里程碑 Qt 6 0是Qt 5系列的延续 Qt 6 0将作为Qt的主要版本 为我们提供更高的自由度来实现新特性 功能 以更好地
  • PTP精确时间协议

    Precision Time Protocol PTP IEEE 1588 PTP 是一种高精度时间同步协议 在网络通过同步信号周期性对所有节点时钟校正 PTP一般在硬件级实现的 精度更高 常见的是直接在 MAC 层嵌入时间戳 1588v1
  • python读取文件之with open()

    读写文件是最常见的IO操作 Python内置了读写文件的函数 用法和C是兼容的 open VS with open 目前最常使用的是with open 函数 首先介绍它和open 的区别 open 完成后必须调用close 方法关闭文件 因
  • EasyExcel 百万级别数据高效率导入/导出

    嗨 您好 我是 vnjohn 在互联网企业担任 Java 开发 CSDN 优质创作者 推荐专栏 Spring MySQL Nacos Java 后续其他专栏会持续优化更新迭代 文章所在专栏 业务设计 我当前正在学习微服务领域 云原生领域 消
  • 【vision transformer】DETR原理及代码详解(二)

  • Setting OMP_NUM_THREADS

    Setting OMP NUM THREADS environment variable for each process to be 1 in default to avoid your system being overloaded p
  • K8S集群 NOT READY的解决办法 1.13 错误信息:cni config uninitialized

    今天给同事 一个k8s 集群 出现not ready了 花了 40min 才搞定 这里记录一下 避免下载 再遇到了 不清楚 错误现象 untime network not ready NetworkReady false reason Ne
  • python-什么是数据分析?

    python 什么是数据分析 根据分析目的 用适当的分析方法及工具 对数据进行分析 提取有价值的信息 形成有效结论的过程 数据分析可分为三类 描述性数据分析 从一组数据中可以摘要并且描述这份数据的集中和离散情形 探索性数据分析 从数据中找出
  • 使用Jmeter+ant进行接口自动化测试(数据驱动)

    最近在做接口测试 因为公司有使用jmeter做接口测试的相关培训资料 所以还是先选择使用jmeter来批量管理接口 进行自动化测试 话不多说 进入正题 1 使用csv文件保存接口测试用例 方便后期对接口进行维护 先新建txt文件 然后文件扩
  • [极客大挑战 2019]Secret File 1(php伪协议)

    纯小白的web之旅 o 第一篇题解 有些地方可能还不清楚 或者存在错误 大佬们如果看到可以指点一下 点开靶机 是这个界面 第一步看一下源代码 可以看到一个提示 Archive room php 点进去就跳到另一个页面了 我们点一下secre
  • 开发过程中用到的相关知识汇总

    开发相关 语言相关 算法 数据库优化 linux系统 系能调优 工具 维护相关 监控工具 问题定位
  • 基于java+springboot+mybatis+vue+elementui的旧物置换网站

    项目介绍 随着时代的不进步 旧物也成人们的烦恼 许多平台网站都在推广自已的产品像天猫 咸鱼 京东 拼多多 所以开发出一套关于旧物置换网站非常有必要 旧物置换网站主要是借助计算机 通过对用户进行管理 为减少管理员的工作 同时也方便广大用户对个
  • 在windows7下安装vs2017插件 GLSL language integration v0.10.120.vsix报错:microsoft.visualc.redist.12

    系列文章目录 文章目录 系列文章目录 前言 一 分析原因 二 解决办法 1 下载对应的 VC redist x64 exe 安装 VC redist x64 exe 前言 一 分析原因 官方描述 Visual C 可再发行程序包安装 Mic
  • 折半查找法

    折半查找法又称为二分查找法 这种方法对待查找的列表有两个要求 1 必须采用顺序存储结构 2 必须按关键字大小有序排列 算法思想 首先 将表的中间位置记录的关键字与查找关键字比较 如果两者相等 则查找成功 否则利用中间位置记录将表分成前 后两
  • Lightmap3ds

    https github com Gamieon Lightmap3ds
  • 物联网体系的三层结构功能和包含设备

    物联网体系的三层结构 综合国内各权威物联网专家的分析 将物联网系统划分为三个层次 感知层 网络层 应用层 并依此概括地描绘物联网的系统架构 感知层 感知层解决的是人类世界和物理世界的数据获取问题 由各种传感器以及传感器网关构成 该层被认为是
  • Mybatis批量更新的两种方式

    前言 在使用Mybatis框架的过程中 经常会通过构建动态SQL来处理批量插入 批量更新数据等相关操作 本文将以批量更新为例 简单介绍其使用过程 动态SQL元素 if set trim foreach 批量更新 映射方法 int updat
  • 模式分类识别

    模式分类识别 RF随机森林多特征分类预测及变量重要度衡量 Matlab完整程序 目录 模式分类识别 RF随机森林多特征分类预测及变量重要度衡量 Matlab完整程序 预测结果 基本介绍 程序设计 参考资料 预测结果
  • SNMP V1 V2 V3版本的联系和区别 .

    SNMP 是一个协议用来管理网络上的节点 包括工作站 路由器 交换机 集线器和其他的外围设备 SNMP是一个应用协议 使用UDP封装进行传输 UDP是一个无连接的传输层协议 在OSI模型中为第四层协议 提供简单的可靠的传输服务 SNMP使网
  • JavaScript replace字符串替换函数的用法

    replace 语法 stringObj replace rgExp replaceText stringObj 必选项 要执行该替换的 String 对象或文字 该对象不会被 replace 方法修改 rgExp 必选项 描述要查找的内容