• js正则表达式


    转帖一个js的语言留作备忘。

    代码
    一 javascript正则表达式的基本知识

    1 javascript 正则对象创建 和用法

    声明javascript 正则表达式

    var reCat = new RegExp("cat");
    你也可以
    var reCat = /cat/; //Perl 风格 (推荐)

    2 学习最常用的 test exec match search replace split 6个方法

    1) test 检查指定的字符串是否存在

    var data = "123123";
    var reCat = /123/gi;
    Alert(reCat.test(data));
    //true

    //检查字符是否存在 g 继续往下走 i 不区分大小写

    2) exec 返回查询值

    var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
    var reCat = /cat/i;
    Alert(reCat.exec(data));
    //Cat

    3)match 得到查询数组

    var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
    var reCat = /cat/gi;
    var arrMactches = data.match(reCat)

    for (var i=0;i < arrMactches.length ; i++)
    {
    Alert(arrMactches[i]);
    //Cat cat
    }

    4) search 返回搜索位置 类似于indexof

    var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
    var reCat = /cat/gi;
    Alert(data.search(reCat));
    //23


    5) replace 替换字符 利用正则替换

    var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
    var reCat = /cat/gi;
    Alert(data.replace(reCat,
    "libinqq"));

    6)split 利用正则分割数组

    var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
    var reCat = /\,/;
    var arrdata = data.split(reCat);

    for (var i = 0; i < arrdata.length; i++)
    {
    Alert(arrdata[i]);
    }

    3 学习下 简单类 负向类 范围类 组合类

    //简单类
    var data = "1libinqq,2libinqq,3libinqq,4libinqq";
    var reCat = /[123]libinqq/gi;
    var arrdata = data.match(reCat);

    for (var i = 0; i < arrdata.length; i++)
    {
    Alert(arrdata[i]);
    // 1libinqq 2libinqq 3libinqq
    }

    //负向类
    var data = "alibinqq,1libinqq,2libinqq,3libinqq,4libinqq"; //\u0062cf
    var reCat = /[^a123]libinqq/gi;
    var arrdata = data.match(reCat);

    for (var i = 0; i < arrdata.length; i++)
    {
    Alert(arrdata[i]);
    //4libinqq
    }

    //范围类
    var data = "libinqq1,libinqq2,libinqq3,libinqq4,libinqq5"; //\u0062cf
    var reCat = /libinqq[2-3]/gi;
    var arrdata = data.match(reCat);

    for (var i = 0; i < arrdata.length; i++)
    {
    Alert(arrdata[i]);
    // libinqq2 libinqq3
    }

    //组合类
    var data = "a,b,c,w,1,2,3,5"; //\u0062cf
    var reCat = /[a-q1-4\n]/gi;
    var arrdata = data.match(reCat);

    for (var i = 0; i < arrdata.length; i++)
    {
    Alert(arrdata[i]);
    // a b c 1 2 3
    }

  • 相关阅读:
    三十二、webpackdevserver搭建本地服务器
    三十一、plugin
    三十三、Vue Cli 的使用(初始化项目)
    Redis专题之4、第4篇:Redis新的3种数据类型
    Redis专题之5、第5篇:Jedis操作Redis6
    Redis专题之3、第3篇:Redis的发布和订阅
    C++:intelliSense未定义标识符cout NK
    taroui引入报错 Using / for division outside of calc() is deprecated and will be removed in Dart Sass 2.0.0
    Learning to Drive in a Day
    DDD17: EndToEnd DAVIS Driving Dataset
  • 原文地址:https://www.cnblogs.com/dba_xiaoqi/p/1852542.html
Copyright © 2020-2023  润新知