js怎么替换字符串?

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

js怎么替换字符串?

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

语法:

stringObject.replace(regexp/substr,replacement)

登录后复制

1.png

返回值

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

说明

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

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

2.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)e/ 这里的  表示把第1个分组的内容重复一遍*/    console.log(/ab(cd)e/.test("abcde"));//false    console.log(/ab(cd)e/.test("abcdcde"));//true    /*要求:将下列字符串中相领重复的部分删除掉"*/    var str = "abbcccdeee";    var newStr = str.replace(/(w)+/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(/w+/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"替换掉*/

登录后复制

推荐教程:《JavaScript视频教程》 

以上就是js怎么替换字符串?的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2726593.html

(0)
上一篇 2025年3月7日 23:33:25
下一篇 2025年2月23日 12:13:06

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 总结javascript中遍历数组的几种方法

    本篇文章给大家总结了一些javascript遍历数组的几种方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 有几种方法可以遍历数组,下面将逐个罗列! while循环 let index = 0;const array …

    2025年3月7日 编程技术
    200
  • 深入分析JavaScript的Module模式编程

    基础知识 首先我们要大概了解一下Module模式(2007年由YUI的EricMiraglia在博客中提出),如果你已熟悉 Module 模式,可以跳过本部分,直接阅读”高级模式”。 相关学习推荐:javascrip…

    2025年3月7日
    200
  • Javascript PJAX 原理和使用

    pjax 即 pushState + ajax,它被封装成了一个 jQuery 扩展以方便使用。pjax 主要用来解决 HTML 页面局部刷新 url 不更新和不支持后退和前进的问题,提升用户体验。 pjax原理 pjax 的实现是利用 H…

    2025年3月7日
    200
  • 前端工程师需要掌握哪些知识?

    前端工程师需要掌握哪些知识? 1、能熟练使用HTML、CSS、Javascript,主要工作还是搭建静态页面; 2、学习Bootstrap、jQuery之类,以及AJAX技术; 3、学习进阶框架Angular、Vue、React等。 立即学…

    2025年3月7日
    200
  • javascript警告是什么意思

    javascript警告是弹出警告框的意思,设置方法为:首先在浏览器中按f12,打开控制台;然后在输入框输入【alert(‘警告弹出’)】,并按回车即可 。 javascript中,alert()是弹出警告框的意思。…

    2025年3月7日 编程技术
    200
  • javascript向PHP传递中文乱码怎么办

    javascript向PHP传递中文乱码的解决方法:首先在javascript代码中用【encodeURIComponent()】函数处理中文字符串;然后保证JavaScript和Asp、Php等后端程序间传值编码统一即可。 javascr…

    2025年3月7日
    200
  • 如何使用JavaScript lastIndexOf()方法

    JavaScript lastIndexOf()方法的使用:1、该方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数start,则在一个字符串中的指定位置从后向前搜索;2、lastIndexOf方法是区分大小写的。 推荐学习:j…

    2025年3月7日
    200
  • JavaScript实现电池状态的方法

    【相关图文推荐:js教程(图文)】 从Mozilla Aurora 11起,火狐浏览器里实现了一些新功能,其中一个就是对电池状态接口的基本实现。这个很简单的接口能提供你关于电池当前电量,是否在充电等信息,以及一些电池状态变化事件。让我们来看…

    2025年3月7日
    200
  • 详解Javascript严格模式

    【相关学习推荐:javascript学习教程】 除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。 设立”严格模式”的目的…

    2025年3月7日
    200
  • 设计一个JavaScript插件系统,重要无比

    【相关学习推荐:javascript视频教程】 WordPress有插件、 jQuery有插件、Gatsby、Eleventy和Vue也是如此。 插件是库和框架的常见功能,并且有一个很好的理由:它们允许开发人员以安全,可扩展的方式添加功能。…

    2025年3月7日
    200

发表回复

登录后才能评论