利用正则表达式进行字符串替换(replace方法)

语法

str.replace(regexp|substr, newSubStr|function)

参数

  • regexp(pattern)

    一个RegExp对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。

  • substr(pattern)

    一个要被 newSubStr 替换的{{jsxref(“String”,”字符串”)}}。其被视为一整个字符串,而不是一个正则表达式。仅仅是第一个匹配会被替换。

  • newSubStr (replacement)

    用于替换掉第一个参数在原字符串中的匹配部分的 {{jsxref(“String”, “字符串”)}}

  • function (replacement)

    一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。

返回值

一个部分或全部匹配由替代模式所取代的新的字符串。

描述

上面语法的含义是说:一共两个参数,但是两个参数可以分别传输不同的类型的值。

可能你看上面BB半天了也没看明白,没关系,我们直接来上代码

用法

  1. 基本用法

    var x = "abcda";  //两个参数都是字符串  var y = x.replace('a','x');//'xbcda'
  2. 进阶用法

    var x = "abcda";  //前面参数使用正则,后面使用字符串  var y = x.replace(/a/g,'x');//'xbcdx'
  3. 复杂用法

    var x = 'abcda';  //前面参数使用正则,后面使用字符串  var y = x.replace(/a/g,function(match){    return match.toUpperCase();  });//'AbcdA'

应用场景

这里只讲复杂用法中的应用场景实际使用,比如有个需求:你需要html文件中的标签之间的所有

标签中的字符a替换为字符b。当然如果是正则大神的话就可以跳过这里了,主要以下方式比较容易理解,更适合正则新手。

解决办法:

  var allData = "<body>"+'rn'+                  "<div>aaa</div>"+'rn'+                  "<p>aaa</p>"+'rn'+              "</body>";  allData = allData.replace(/<body>([sS]*?)</body>/g, function(match) {          return match.replace(/<p>(.*?)</p>/g, function(match1) {              return match1.replace(/a/g, "b")          })      });

PS:在进行全局的搜索替换时,正则表达式需包含 g 标志

如果对以上有什么疑问,可以在评论区发表,方便大家进行探讨。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 利用正则表达式进行字符串替换(replace方法) https://www.lizi.tw/soft/12558.html

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

利用正则表达式进行字符串替换(replace方法)-海报

分享本文封面