• jsmatch,replace强悍 简单


    js中字符串的方法,仔细使用才发现十分强悍:

    备注:此处只谈跟正则有关的使用) 

    1. match

      在match后:

       若不匹配: 返回null

       若匹配:返回数组(如果正则包含“g”,数组元素分别为匹配的字符串; 如果不包含,则返回首次匹配的子字符串,以及属性input和index)

    2. replace (超级强大)

     使用replace,有两个参数,第一个使用正则,第二可使用单独的字符串或者函数(如下详谈函数有关的使用)

    使用函数:

     第一个参数表示匹配的子字符串,第二个,第三个。。。表示跟分组有关的子字符串(没有分组,则忽略这些参数),后面还带有匹配的子字符串的下标、最后是原始字符串。

    看示例:

    //分别测试多个示例

    function test2() {

        var s1 = "javascript";

        s1 = "abc123adfjk-Ljdfjk_dfa";

        s1 = " this is a very good day, and it's very wanderful.";

    //    s1 = "张三73分,李四99分,王五59.5分,赵六19.5分。";

        console.log(s1);

        var s2 = s1.replace(/(java)(script)/, "$2-$1");

        var s2 = s1.replace(/\W/g, "*");

        var s2 = s1.replace(/(\b\w+\b)/g, f1);

    //    var s2 = s1.replace(/\b(\w)(\w+)\b/g, f2);

    //    var s2 = s1.replace(/\d+(\.\d)?/g, f3);

        function f1($1) {

            console.log(arguments);

            return $1.charAt(0).toUpperCase() + $1.substring(1, $1.length);

        }

        function f2($1, $2, $3) {

    //        console.log($1, $2, arguments);

            return $2.toUpperCase() + $3;

    //        console.log(arguments, f2.length);

        }

        function f3($1) {

        }

    //    var s2 = s1.replace(/^[a-zA-Z]/g, "*");

        console.log(s2);

    }

    test2();

    //match和replace的综合使

    function test2_1() {

        var s = "张三73分,李四99分,王五59.5分,赵六19.5分。";

        var re = /\d+\.?\d*/g;

        var arr = s.match(re);

        var avg = 0;

        for(var i = 0, n = arr.length; i < n; i++) {

            avg += parseFloat(arr[i]);

        }

        avg /= i;

        var result = s.replace(re, func);

        function func($1) {

            return $1 + "(平均分:" + avg + ",相差:" + (avg - parseFloat($1)) + ")";

        }

        console.log(arr, avg, result);

    }

    //test2_1();

    //单独测试match方法

    function test3() {

        var s = "ab12cdd12_dd2fad_dfae1234 dd";

        var re = /\d+/;

        var arr = s.match(re);

    //    console.log(arr);

        for(var p in arr) {

            console.log("p", p, arr[p]);

        }

    }

    //test3();

  • 相关阅读:
    Python单例模式中的4种方式
    Python list,tuple,dict,set高级变量常用方法
    python如何获取多个excel单元格的值
    两种方法实现python操作日志的封装
    numpy中函数shape的用法
    python中timer定时器常用的两种实现方法
    详解Python中argpasrse模块的基本使用
    在python中列表删除和多重循环退出
    Python的驻留机制(仅对数字,字母,下划线有效)
    python实现tail -f 功能
  • 原文地址:https://www.cnblogs.com/chyong168/p/2256172.html
Copyright © 2020-2023  润新知