字符串的替换和拆分

    // 字符串的替换 String.replace(要替换的字符串, 替换成的字符串),未找到指定字符串则原样输出原字符串
    var str = "cat, bat, sat, fat";
    var pattern = /.at/;
    console.log(str.replace("at", "boy"));                      // 输出 cboy, bat, sat, fat
    // 第一个参数可以使用字符串或RegExp,如果想全局替换或忽略大小写只能使用 RegExp 形式
    console.log(str.replace("AT", "boy"));                      // 输出 cat, bat, sat, fat
    console.log(str.replace(/at/g, "boy"));                     // 输出 cboy, bboy, sboy, fboy
    console.log(str.replace(/AT/gi, "boy"));                    // 输出 cboy, bboy, sboy, fboy
    // 第二个参数是字符串时,可以使用特殊字符序列
    // $'  匹配的字符串之后的子字符串
    console.log(str.replace(/.at/, "boy($')"));                    // 输出 boy(, bat, sat, fat), bat, sat, fat
    console.log(str.replace(/.at/g, "boy($')"));               // 输出 boy(, bat, sat, fat), boy(, sat, fat), boy(, fat), boy()
    // $`  匹配的字符串之前的子字符串
    console.log(str.replace(/.at/, "boy($`)"));                    // 输出 boy(), bat, sat, fat
    console.log(str.replace(/.at/g, "boy($`)"));               // 输出 boy(), boy(cat, ), boy(cat, bat, ), boy(cat, bat, sat, )
    // $nn 匹配第nn个子字符串,nn 为 00~99
    console.log(str.replace(/(.at)/, "boy($01)"));             // 输出 boy(cat), bat, sat, fat
    console.log(str.replace(/(.at)/g, "boy($01)"));                // 输出 boy(cat), boy(bat), boy(sat), boy(fat)
    // g 标识的存在会导致指针的后移
    // 第二个参数可以是函数,function(第一个捕获组的匹配项,第二个捕获组的匹配项,.... , 匹配项在字符串中的位置, 原始字符串),该函数的返回值应该是一个字符串,以替换匹配项,使用函数可以对字符串进行更精细的操作
    var replacefunc = str.replace(/cat/, function(match, pos, orgtext){
        console.log(match);                                     // 输出 cat
        console.log(pos);                                       // 输出 0
        console.log(orgtext);                                   // 输出 cat, bat, sat, fat
        return "Hello";
    });
    console.log(replacefunc);                                   // 输出 Hello, bat, sat, fat

    // 最后补充一个模式匹配的方法 String.split(分隔符[, 返回数组的大小]),该方法用于将字符串以指定分隔符拆分成数组,返回值是一个数组,分隔符可以是字符串,也可以是 RegExp
    console.log(str.split(","));                                // 输出 ["cat", " bat", " sat", " fat"]
    console.log(str.split(",", 3));                             // 输出 ["cat", " bat", " sat"]
    console.log(str.split(/[^\,]./, 3));                        // 输出 ["", "", ""]

猜你喜欢

转载自blog.csdn.net/Jackie_Rose/article/details/54861056