美文网首页JavaScript深入浅出程序员Web前端之路
利用正则表达式进行字符串替换(replace方法)

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

作者: 古朋 | 来源:发表于2017-03-16 21:38 被阅读149次

语法

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文件中的<body>标签之间的所有<p>标签中的字符a替换为字符b。当然如果是正则大神的话就可以跳过这里了,主要以下方式比较容易理解,更适合正则新手。

解决办法:


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

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

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

相关文章

  • iOS 快速国际化

    第一步、xcode用正则方法替换字符串Replace匹配模式Regular Expression正则表达式 @"...

  • 34.Python字符串替换方法translate

    Python字符串替换方法有replace、translate。replace很简单,直接字符串中的某个子串替换为...

  • String

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

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

    语法 参数 regexp(pattern)一个RegExp对象或者其字面量。该正则所匹配的内容会被第二个参数的返回...

  • String replaceAll和replace

    两者都是全部替换replaceAll 可以是基于正则表达式的替换,replace 是字符或者字符串的对比替换,如果...

  • replace方法使用

    replace方法是属于String对象的,可用于替换字符串。 StringObject.replace(sear...

  • 利用replace方法实现从右到左替换字符串

    replace方法原型 old -- 将被替换的子字符串。new -- 新字符串,用于替换old子字符串。max...

  • python字符串

    字符串常用方法 1、首字母大写 capitalize方法 2、字符串替换 replace方法 参数1:老字符串 参...

  • JS replaceAll

    JS 字符串替换操作有replace() 方法。但是这个方法有些问题,就是只能替换目标字符串中第一个匹配的字符串。...

  • 编程小技巧之字符串替换

    字符串的替换操作我们通常用String类的replace方法,但是java1.9之前版本的replace方法性能表...

网友评论

本文标题:利用正则表达式进行字符串替换(replace方法)

本文链接:https://www.haomeiwen.com/subject/ifksnttx.html