• ES5基础之正则表达式02:范围类、预定义类和边界字符


    1.范围类

        //元字符
    
        /*
         * 正则表达式由两种基本字符类型组成
         * 1.原义文本字符:例如123abc
         * 2.元字符:元字符是在正则表达式中有特殊含义的非字母字符
         */
    
        //常见特殊符号:. * ? $ ^ |  ( ) { } [ ]
    
        /* 1.字符类
         * 我们可以使用元字符[]来构建一个简单的类
         * 所谓类是指符合某些特性的对象,一个泛指,而不是特值某些字符
         * 表达式[abc]把字母a字母b字符c归为一类,表达式可以匹配这类的字符,而不是匹配abc
         */
        var string = 'a1b2c3';
        string = string.replace(/[abc]/g, 'X');
        console.log(string);
    
        // 在 [] 前面加 ^ 表示取反,比如:var reg = /[^abc]/g 表示匹配非abc;
        var string = 'a1b2c3';
        string = string.replace(/[^abc]/g, 'X');
        console.log(string);
    
        /* 2.范围类
         * 比如:使用字符类匹配数字则为[0123456789] 这样比较麻烦
         * 正则表达式为我们提供了范围类
         * 我们可以使用 [a-z] 来连接两个字符表示从a-z的任意字符
         * [0-9]表示任意数字
         * 在 [] 组成的类内部是可以连写的 [a-zA-Z0-9];
         */
        var string = 'a1b2c3ccee654ADAD';
        string = string.replace(/[a-zA-Z0-9]/g, 'X');
        console.log(string);//全部都为X
    
        //注意:- 在 []内部表示范围的意思,如果要匹配 - ,可以直接加载后面
        var string = 'a1b-2c3c-cee654A-DAD';
        string = string.replace(/[a-zA-Z0-9-]/g, 'X');
        console.log(string);//全部都为X

     2.预定义类

        /* 3.预定义类
         * 正则表达式提供预定义类来匹配常见的字符类
         * 字符-等价类-含义 
         * .  <=> [^
    ] 除了回车换行之外的所有字符 
         * d <=> [0-9] 数字字符 digital
         * D <=> [^0-9] 非数字字符 digital
         * s <=> [	
    x0Bf
    ] 空白字符 space
         * S <=> [^	
    x0Bf
    ] 非空白字符 space
         * w <=> [a-zA-Z0-9_] 字母数字下划线 word
         * W <=> 非字母数字下划线 word
         */
    
        //实例1:匹配一个 ab + 数字 + 任意字符 的字符串
        // abd.

    3.边界字符

        /* 4.边界字符
         * 正则表达式提供了几个常用边界匹配字符
         * 字符-含义
         * ^  - 以 xxx 开始
         * $  - 以 xxx 结束
         *  - 单词边界
         * B - 非单词边界 
         */
    
        //关于单词边界的使用:需要单词边界--双边
        var string = 'this is a boy, this is a girl';
        string = string.replace(/is/g, 'my')
        console.log(string);
    
        //关于单词边界的使用:不需要单词边界--单边
        var string = 'this is a boy, this is a girl';
        string = string.replace(/Bis/g, 'my')
        console.log(string);
    
        //关于单词边界的使用:不需要单词边界--双边
        var string = 'this is a boy, this is a girl';
        string = string.replace(/Bis/g, 'my')
        console.log(string);
    
        //关于单词边界的使用:^
        var string = '@123@abc@';
        string = string.replace(/@./g, 'Q');
        console.log(string);
    
        var string = '@123@abc@';
        string = string.replace(/^@./g, 'Q');
        console.log(string);
    
        //关于单词边界的使用:$
        var string = '@123@abc@';
        string = string.replace(/.@/g, 'Q');
        console.log(string);
    
        //关于单词边界的使用:$
        var string = '@123@abc@';
        string = string.replace(/.@$/g, 'Q');
        console.log(string);
  • 相关阅读:
    个人知识管理的29个原则
    c#正则表达式
    sql 获取一个周的周一和周日
    分享2012年地址区域结构(基于标准行政区域代码、内含邮编)
    测试平台系列(5)项目管理页面(2)
    测试平台系列(1)环境搭建
    测试平台开场仪式
    测试平台系列(2)前端首页搭建
    测试平台系列(6)项目管理页面(3)
    测试平台系列(8)添加用例页
  • 原文地址:https://www.cnblogs.com/noper/p/6246730.html
Copyright © 2020-2023  润新知