• 44.更多replace案例


    正则的捕获有两种:

      1.exec方法

      2.字符串的match方法

      3.字符串的replace方法:将原有的字符替换成我们新的字符

        在不使用正则的情况下,使用replace只能替换正则中的一个

        在replace当中我们可以一次批量的把所有正则匹配的内容都替换掉-- replace中是支持正则的

    练习:

      1.获取一个字符串中出现次数最多的字符,并且获取出现的次数

        // 1)获取每一个字符出现的次数

        var str = "zhangsanpeixunyangfanqihang";

        var obj = {};

        str.replace(/[a-z]/gi,function(){

          var val = arguments[0]

          obj[val] >= 1 ? obj[val] +=1 : obj[val] = 1

        })

        console.log(obj)

        // 2)获取最多出现的次数

        var maxNum = 0;

        for (var key in obj) {

          obj[key] > maxNum ? maxNum = obj[key] : null;

        }

        // 3)把所有符合出现maxNum次数的都获取到

        var ary = [];

        for (var key in obj) {

          obj[key] === maxNum ? ary.push(key) : null;

        }

        console.log("整个字符串中出现次数最多的字符是:" + ary.toString() + ",出现了" + maxNum + "次")

      2.模板引擎实现的初步原理

        var str = "my name is {0},my age is {1},i come form {2},i love {3}~";

        var ary = ["崔俊丽","18","china","JavaScrpt"];

        str = str.replace(/{(d+)}/g,function () {

          return ary[arguments[1]];

          // return ary[RegExp.$1]; // 在IE下是不兼容的

        });

        console.log(str);

      思考题:

        1."2015-9-22 13:10:0" 替换成"2015年09月22日 13时10分00秒"

        2.把一个字符串中所有单词的首字母大写 “zhang san pei xun” -> "Zhu Feng Pei Xun"

        3.需求:queryURLParameter

        把url中的参数都获取到,并且保存成如下格式?

        方式一:

        
        var str = "http://kbs.sports.qq.com/kbsweb/game.htm?mid=10000&cid=1467086&app=1.0";
        var obj = {       mid: "10000",       cid:"1467986",       app:"1.0"     }     var reg = /([^?=&]+)=([^?=&]+)/g;     var obj = {};     var res = reg.exec(str);     while (res) {       obj[res[1]] = res[2];       res = reg.exec(str);     }     console.log(obj);

        方式二:

        var str = "http://kbs.sports.qq.com/kbsweb/game.htm?mid=10000&cid=1467086&app=1.0";   
        var obj = {};     str.replace(reg,function() {       obj[arguments[1]] = arguments[2];     });     console.log(obj);

        

          

  • 相关阅读:
    有序数组中找中位数
    卡特兰数 catalan number
    海量数据等概率选取问题
    求字符串中最长无重复字符的子串
    Linux的进程通信(IPC)
    Linux多线程编程
    后缀数组处理字符串的利器
    网络编程socket基本API详解
    Windows线程的创建与终止
    《算法导论》读书笔记之第10章 基本数据结构之二叉树
  • 原文地址:https://www.cnblogs.com/z-dl/p/8985457.html
Copyright © 2020-2023  润新知