欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

js教程

JS replace使用方法

js教程 我的站长站 2025-02-24 共0人阅读

replace简介

用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

该方法返回一个新的字符串,但不改变原字符串

签名: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('arguments:', arguments)
  return '靓仔'
})
console.log('str:', str)

如上所示,func内return的内容会替换reg匹配到的内容。

不写return,默认使用undefined来进行替换

不想实现替换的话,我们可以把捕获的内容再返回回去 return arguments[0]

RegExp使用分组时

一个分组:

let str = "叼毛1号: 亚索, 叼毛2号: 永恩"
// 添加分组(\d号)
const reg = /叼毛(\d号)/g
str = str.replace(reg, function() {
  console.log('arguments:', arguments)
  return '靓仔' + arguments[1]
})
console.log('str:', str)

参数:

arguments[0]:匹配到的第一个子字符串

arguments[1]: 匹配到的第一个分组项

arguments[2]:此次匹配到的字符的索引位置

arguments[3]:源字符串本身

两个分组:

let str = "叼毛1号: 亚索, 叼毛2号: 永恩"
// 添加分组(\d号) (:)
const reg = /叼毛(\d号)(:)/g
str = str.replace(reg, function() {
  console.log('arguments:', arguments)
  return '靓仔' + arguments[1] + arguments[2]
})
console.log('str:', str)

参数:

arguments[0]:匹配到的第一个子字符串

arguments[1]: 匹配到的第一个分组项

arguments[2]: 匹配到的第二个分组项

arguments[3]:此次匹配到的字符的索引位置

arguments[4]:源字符串本身

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

第一个参数总是匹配的子字符串

若RegExp正则表达式有分组匹配,有几个分组,按顺序接下来的参数即为匹配的分组项

倒数第二个参数是此次匹配到的字符的索引位置

标签 replace
相关推荐
  • replace
  • JavaScript replace方法替换字符串空格方法

    在JavaScript中,如果你想替换字符串中的空格,你可以使用String对象的replace()方法。这个方法可以让你指定一个正则表达式(或字符串)作为搜索模式,以及一个替换字符串或函数来替换找到的匹配项。替换单个空格如果你只想替换单个空格,可以这样做:let str = "...

    js教程 10 1周前
  • js删除字符串最后一个逗号方法

    js删除字符串最后一个逗号方法,可以使用以下几种实现方法:方法一:正则表达式let str = "a,b,c,d,";str = str.replace(/,$/, '');console.log(str); // 输出:a,b,c,d这里使用正则表达式 /,$/ 匹配到最后一个逗号,并将其替换为空字符串。方法二:sli...

    js教程 98 2个月前
  • js获取字符长度函数分享

    js获取字符长度函数function objLen(str) { if (str == null) return 0; if (typeof str != "string") { str += ""; } return str.replace(/[^\x00-\xff]/g, "01").length;}函数使用方法var arr1 = 'ABCD1234'console.log(objLen(...

    js教程 17 1年前
  • JS翻译网页替换代码

    JS翻译网页替换代码,自动提取网页中所有文本节点,可根据需求来进行翻译或替换。function listen(callback) { // 获取 HTML 文档中的所有元素,但不包括 下列 选择器的元素 var exclude = ['head', 'pre', 'script', &#39...

    js教程 73 2年前
  • jquery去除网址前缀http或HTTPS

    分享一段jquery去除网址前缀http或HTTPS的方法,记得要使用前要引用jquery框架哦。var url= $("#www").val();url = url.substr(0, url.length - 1); var http = url.replace('https://','');var www = http.replace('http://&...

    js教程 72 3年前