js replace函数

人气:286 ℃/2022-12-26 22:32:28

js中replace函数是什么,怎么使用呢?不知道的小伙伴来看看小编今天的分享吧!

1、replace函数的定义和用法

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

2、语法

stringObject.replace(regexp/substr,replacement)

regexp/substr:规定子字符串或要替换的模式的 RegExp 对象。

注意:如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

replacement:一个字符串值。规定了替换文本或生成替换文本的函数。

一个新的字符串,是用replacement替换了 regexp 的第一次匹配或所有匹配之后得到的。

3、说明

字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用replacement来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

replacement可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

$1、$2、...、$99:与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。

$&与 regexp 相匹配的子串。

$`位于匹配子串左侧的文本。

$'位于匹配子串右侧的文本。

$$直接量符号。

注意:ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。

4、举例

使用 "W3School" 替换字符串中的 "Microsoft":

<script type="text/javascript">

var str="Visit Microsoft!"

document.write(str.replace(/Microsoft/, "W3School"))

</script>

输出:

Visit W3School!

以上就是小编今天的分享了,希望可以帮助到大家。

js replace函数\/

来一轮带注释的demo,彻底搞懂javascript中的replace函数

javascript这门语言一直就像一位带着面纱的美女,总是看不清,摸不透,一直专注服务器端,也从来没有特别重视过,直到最近几年,javascript越来越重要,越来越通用。最近和前端走的比较近,借此机会,好好巩固一下相关知识点。

1.初识replace

在js中有两个replace函数 一个是location.replace(url) 跳转到一个新的url

一个string.replace("xx","yy") 替换字符串 返回一个新的字符串,该方法并不改变字符串本身

location.replace(url) 无痕跳转(将当前链接导航到一个新的url 并不保存历史记录)

与之相对的是location.href="url" 有痕跳转(将当前链接导航到一个新的url 且保存历史记录) 这个没有比较清晰

string.replace函数 很多初学者,会认为这个跟C#中的Replace一样,但并不相同,js中replace更灵活。

最基本的用法 就是简单替换字符串。来看一个例子:

var str = "abcd-abcd-abcd";varresult = str.replace("a", "");

console.log(result);

//输出 bcd-abcd-abcd

//当第一个参数是一个简单字符串时,仅替换第一个匹配项

2.走进replace之正则表达式

参数一:正则表达式对象或字面量(支持gi模式) g全局匹配 i忽略大小写

参数二:要替换的字符串或一个function

可以使用正则表达式的相关引用

如果是function,则替换为function的返回值

此function的参数:

match匹配的子串。(对应于上述的$&。)

p1,p2, ...假如replace()方法的第一个参数是一个RegExp 对象,则代表第n个括号匹配的字符串。(对应于上述的$1,$2等。)

offset 匹配到的子字符串在原字符串中的偏移量。(比如,如果原字符串是“abcd”,匹配到的子字符串是“bc”,那么这个参数将是1)

string 被匹配的原字符串。

正则表达的引用

$$插入一个 "$"。

$&插入匹配的子串。

$`插入当前匹配的子串左边的内容。

$'插入当前匹配的子串右边的内容。

$n假如第一个参数是 RegExp对象,并且 n 是个小于100的非负整数,那么插入第 n 个括号匹配的字符串。

3.来一轮带注释的demo,彻底搞懂javascript中的replace函数:

全局匹配:

var str = "abcd-abcd-abcd";

var result = str.replace(/a/g, "e");

console.log(result);

//输出 ebcd-ebcd-ebcd

//g全局匹配 所有a字符串都将被替换

忽略大小写匹配:

var str = "abcd-abcd-abcd";

var result = str.replace(/A/i, "e");

console.log(result);

// 输出 ebcd-abcd-abcd

// 忽略大小写的匹配 但没有进行全局匹配 所以只替换第一个a

忽略大小写且全局匹配:

var str = "abcd-abcd-abcd";

var result = str.replace(/A/gi, "e");

console.log(result);

// 输出 ebcd-ebcd-ebcd

// 忽略大小写并全局匹配 所有a都被替换

使用function作为第二参数:

var str = "abcd-abcd-1234";

var result = str.replace(/([a-z]*)-([a-z]*)/gi, function(match,p1,p2,offset,str){

console.log(match); //abcd-abcd 匹配的内容

console.log(p1); //第一个括号中匹配的内容

console.log(p2); //第二个括号匹配的内容

console.log(offset);//0 匹配到的字符串的索引(偏移量)

console.log(str); //原始字符串

return [p1,p2].join(" ");

});

console.log(result);

// 输出 abcd abcd 1234

// 原字符串中 abcd-abcd 被匹配后 被替换为function返回的内容

在参数中引用正则表达式匹配项:

var str = "a b";

var result = str.replace(/(\w )\s(\w )/gi, "$2 $1");

console.log(result);

//输出 b a

// 这里的$1 $2分别引用正则表达式中第一个喝第二个括号匹配的内容

在参数中引用匹配项左侧内容:

var str = 'abc';

var result = str.replace(/b/g, "$`"); //$`代表匹配字符的左侧内容

console.log(result);

//输出: aac

在参数中引用匹配项右侧内容:

var str = 'abc';

var result = str.replace(/b/g, "$'"); //$'代表匹配字符的右侧内容

console.log(result);

//输出: acc

使用正则表达式对象:

var str = "a b";

var reg = new RegExp(/(\w )\s(\w )/, "gi"); //也可以使用正则表示对象来最为参数

var result = str.replace(reg, "$2 $1");

console.log(result);

有了这些例子 加上开头的名词解释,相信你已经彻底搞懂了javascript中的replace函数!

啥也不说了,大大地点赞吧!!

推荐

首页/电脑版/网名
© 2026 NiBaKu.Com All Rights Reserved.