js替换html中的字符串,js怎么替换字符串?

js替换html中的字符串,js怎么替换字符串?在js中,可以使用str.replace()方法来替换字符串。replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;然后返回一个新的字符串。replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。语法:stringObject.replace(regexp/substr,replacement)返回值一个新的字符串…

大家好,又见面了,我是你们的朋友全栈君。

在js中,可以使用str.replace()方法来替换字符串。replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;然后返回一个新的字符串。

fc14763e8934f7819d5d8b73e9cf44bb.png

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

语法:stringObject.replace(regexp/substr,replacement)

bd0c5fbe804f5de4850646b32d6ee9b6.png

返回值

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

说明

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

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

8ffdee0a01f04da54c5f30f1445c60a6.png

示例:使用 “hello” 替换字符串中的 “hi”:

var str=”hi!”;

console.log(str.replace(/hi/, “hello”));

输出:hello!

扩展知识replace的用法

1、replace基本用法

/*要求将字符串中所有的a全部用A代替*/

var str = “JavaScript is great script language!”;

//只会将第一个匹配到的a替换成A

console.log(str.replace(“a”,”A”));

//只会将第一个匹配到的a替换成A。因为没有在全局范围内查找

console.log(str.replace(/a/,”A”));

//所有a都被替换成了A

console.log(str.replace(/a/g,”A”));

replace基本用法之替换移除指定class类

/*要求将下面这个元素中的unabled类移除掉*/

提交

var classname = document.getElementById(“j_confirm_btn”).className;

/*(^|\\s)表示匹配字符串开头或字符串前面的空格,(\\s|$)表示匹配字符串结尾或字符串后面的空格*/

var newClassName = classname.replace(/(^|\\s)unabled(\\s|$)/,””);

document.getElementById(“j_confirm_btn”).className = newClassName;

2、replace高级用法之 —- $i

2.1、简单的$i用法

/*要求:将字符串中的双引号用”-“代替*/

var str = ‘”a”, “b”‘;

console.log(str.replace(/”[^”]*”/g,”-$1-“));

//输出结果为:-$1-, -$1-

/*解释:$1就是前面正则(/”[^”]*”/g)所匹配到的每一个字符。*/

2.2、$i与分组结合使用

/*要求:将下面字符串替换成:JavaScript is fn.it is a good script language*/

var str = “JavaScript is a good script language”;

console.log(str.replace(/(JavaScript)\s*(is)/g,”$1 $2 fn.it $2″));

/*解释:每一对括号都代表一个分组,从左往右分别代表第一个分组,第二个分组…;如上”*(JavaScript)”为第一个分组,

“(is)”为第二个分组。$1就代表第一个分组匹配的内容,$2就代表第二个分组匹配的内容,依此类推…*/

2.3、$i与分组结合使用—-关键字高亮显示

当我们使用谷歌搜索的时候我们会发现我们搜索的关键字都被高亮显示了,那么这种效果用JavaScript能否显示呢?答案是可以的,使用replace()很轻松就搞定了。

/*要求:将下列字符串中的”java”用红色字体显示*/

var str = “Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。

JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。

但JavaScript的主要设计原则源自Self和Scheme。”;

document.write(str.replace(/(java)/gi,’$1‘));

/*解释:必须要开启全局搜索和忽略大小写,否则匹配不到所有的”java”字符*/

2.4、反向分组—-分组的反向引用

在正则中,当我们需要匹配两个或多个连续的相同的字符的时候,就需要用到反向引用了,查找连续重复的字符是反向引用最简单却也是最有用的应用之一。上面的”$i”也是反向分组的一种形式,这里再介绍另一种反向分组。

/* /ab(cd)\1e/ 这里的 \1 表示把第1个分组的内容重复一遍*/

console.log(/ab(cd)\1e/.test(“abcde”));//false

console.log(/ab(cd)\1e/.test(“abcdcde”));//true

/*要求:将下列字符串中相领重复的部分删除掉”*/

var str = “abbcccdeee”;

var newStr = str.replace(/(\w)\1+/g,”$1″);

console.log(newStr); // abcde

3、replace高级用法之参数二为函数

replace函数的第二个参数不仅可以是一个字符,还可以是一个函数!

3.1、参数二为函数之参数详解

var str = “bbabc”;

var newStr = str.replace(/(a)(b)/g,function (){

console.log(arguments);//[“ab”, “a”, “b”, 2, “bbabc”]

/*参数依次为:

1、整个正则表达式所匹配到的字符串—-“ab”

2、第一个分组匹配到的字符串,第二个分组所匹配到的字符串….依次类推一直 到最后一个分组—-“a,b”

3、此次匹配在源字符串中的下标,返回的是第一个匹配到的字符的下标—-2

4、源字符串—-“bbabc”

*/

})

3.2、参数二为函数之首字母大写案例

/*要求:将下列字符串中的所有首字母大写*/

var str = “Tomorrow may not be better, but better tomorrow will surely come!”;

var newStr = str.replace(/\b\w+\b/gi,function (matchStr){

console.log(matchStr);//匹配到的字符

return matchStr.substr(0,1).toUpperCase() + matchStr.substr(1);

});

console.log(newStr);

3.3、参数二为函数之绑定数据—-artTemplate模板核心

周星驰喜剧电影:

var data = {

name: “功夫”,

protagonist: “周星驰”

},

domStr = ‘

名称: {
{name}}
导演: {
{protagonist}}

‘;

document.getElementById(“content”).innerhtml = formatString(domStr,data);

/*绑定数据的核心就是使用正则进行匹配*/

function formatString(str,data){

return str.replace(/{
{(\w+)}}/g,function (matchingStr,group1){

return data[group1];

});

}

4、replace高级用法之获取与正则表达式匹配的文本

4.1、replace高级用法之获取与正则表达式进行匹配的源字符串

var str = “i am a good man”;

var newStr = str.replace(/good/g,”$&”);

console.log(newStr);//结果:输出i am a good man

/*解释:在这里”$&”就是与正则表达式进行匹配的那个源字符串*/

4.2、replace高级用法之获取正则表达式匹配到的字符

/*要求:将”i am a good man”替换成”i am a good-gond man” */

var str = “i am a good man”;

var newStr = str.replace(/good/g,”$&-$&”);

console.log(newStr);

/*解释:在这里”$&”可以获取到前面正则表达式匹配的内容,如上面的”$&”就是正则表达式匹配到的”good”*/

5、replace高级用法之获取正则匹配的左边的字符

/*要求:将下列字符串替换成”java-java is a good script”*/

var str = “javascript is a good script”;

var newStr = str.replace(/script/,”-$`”);

console.log(newStr)

/*解释:”$`”获取的是正则左边的内容,如上正则中”script”字符前面的是”java”,”-$`”就是”-java”,”-$`”会把script替换掉。*/

6、replace高级用法之获取正则匹配的右边的字符

/*要求:将下列字符替换成”java is a good language!it is a good script is a good script”*/

var str = “javascript is a good script”;

var newStr = str.replace(/script/,” is a good language!it$'”);

console.log(newStr)

/*解释:”$'”获取的就是str右边的内容,如上正则中”$'”就是” is a good script”。

” is a good language!it$'”会把正则匹配到的”script”替换掉*/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144812.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux hexdump显示格式c数组,hexdump命令

    linux hexdump显示格式c数组,hexdump命令hexdump命令一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。语法hexdump[选项][文件]…选项-nlength只格式化输入文件的前length个字节。-C输出规范的十六进制和ASCII码。-b单字节八进制显示。-c单字节字符显示。-d双字节十进制显示。-o双字节八进制显示。-x双字节十六进制显示。-s从偏移量开始输出。…

    2022年9月21日
    4
  • 一文读懂视频编解码原理[通俗易懂]

    一文读懂视频编解码原理[通俗易懂]引子谈到视频的编解码,我们会自然地想到H.264、HEVC/H.265这些权威的视频编解码标准;谈到标准,有人觉得这个是有专门机构去研究的,我们关心应用就好;即使有兴趣读了标准和相关技术,面对更多的是各种数学公式和术语,如协方差、傅立叶变换、高频、滤波等等,需要花更多时间去理解。通常更为实际的做法是,我们只要调研如何应用这些标准,如何做好软硬件编码方案的选型,如何优化技术参数以及如何调用API…

    2022年7月13日
    16
  • Linux在高铁项目的部署环境

    Linux在高铁项目的部署环境

    2022年1月15日
    50
  • JUC多线程:创建线程的四种方式

    JUC多线程:创建线程的四种方式

    2021年10月5日
    42
  • 系统集成工程师被取消_软考信息系统管理工程师

    系统集成工程师被取消_软考信息系统管理工程师软考中级——系统集成项目管理工程师备考干货第二章:信息系统集成及服务管理。

    2022年10月4日
    1
  • log4j2配置文件properties配置_log4j2 配置详解

    log4j2配置文件properties配置_log4j2 配置详解log4j.properties配置文件详解Log4j支持两种配置文件格式,一种是XML格式的文件,一种是properties(key=value)文件,其中properties格式的配置文件最为常用,其有一个固定的文件名log4j.properties,下面我们介绍使用properties文件做为配置文件的方法:1.配置rootLoggerrootLogger的配置方式:log4…

    2022年9月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号