美文网首页
RegExp对象(正则表达式)

RegExp对象(正则表达式)

作者: 混吃等死小前端 | 来源:发表于2019-12-24 17:36 被阅读0次

    基础用法

    \d:可以匹配一个数字
    \w:可以匹配一个字母或数字
    \s:可以匹配一个空格(也包括Tab等空白符)
    .:可以匹配任意字符
    *:表示任意个字符(包括0个)
    +:表示至少一个字符
    ?:表示0个或1个字符
    {n}:表示n个字符
    {n,m}:表示n-m个字符
    g : 全局匹配;var r1 = /test/g;
    i:表示忽略大小写
    m:表示执行多行匹配

    进阶(更精确匹配)

    []:表示范围,无关顺序
    A|B:可以匹配A或B
    ^:表示行的开头
    ^\d:表示必须以数字开头
    **:表示行的结束 **\d:表示必须以数字结束

    [0-9a-zA-Z\_]+ //比如'a100','0_Z','js2015'等等
    

    1、判断正则表达式是否匹配test()

    var re = /^\d{3}\-\d{3,8}$/;
    re.test('010-12345'); // true
    re.test('010-1234x'); // false
    re.test('010 12345'); // false
    

    2、提取子串exec()
    用()表示的就是要提取的分组(Group)

    var re = /^(\d{3})-(\d{3,8})$/;
    re.exec('010-12345'); // ['010-12345', '010', '12345']
    re.exec('010 12345'); // null
    
    //exec()方法在匹配成功后,会返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。
    //exec()方法在匹配失败时返回null。
    

    正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符

    3、上次匹配到的最后索引 lastIndex

    var s = 'JavaScript, VBScript, JScript and ECMAScript';
    var re=/[a-zA-Z]+Script/g;
    
    // 使用全局匹配:
    re.exec(s); // ['JavaScript']
    re.lastIndex; // 10
    
    re.exec(s); // ['VBScript']
    re.lastIndex; // 20
    
    re.exec(s); // ['JScript']
    re.lastIndex; // 29
    
    re.exec(s); // ['ECMAScript']
    re.lastIndex; // 44
    
    re.exec(s); // null,直到结束仍没有匹配到
    

    相关文章

      网友评论

          本文标题:RegExp对象(正则表达式)

          本文链接:https://www.haomeiwen.com/subject/rjgxoctx.html