正则上

作者: 追逐_e6cf | 来源:发表于2018-09-16 16:54 被阅读0次

    一、初识正则表达式
    正则表达式(regular Expression):RegExp();
    1.用处:检索文本,按照我们指定的规则去实现,简单的模式匹配到单词、文字、符号、进行内容替换
    2.基本用法:
    //
    RegExp();
    3.模式:
    /pattern/modifier
    pattern(模式):你想怎么去进行匹配【规则】
    modifier(修饰符):你想添加什么样的条件
    4.如果匹配不到:返回空null;
    5.对象的方法:
    test():如果能够匹配到的话,返回true,如果匹配不到返回false
    exec():如果能够匹配到的话,返回内容,如果匹配不到就返回空
    match():如果能够匹配到的话,返回内容,如果匹配不到就返回空

    //常规型:
    var str = "hello";
    var reg = /l/g;  //g是全局匹配
    console.log(reg.test(str));  //测试
    console.log(str.match(reg))  //用正则表进行查找
    
    var reg = new RegExp("h");
    console.log(str.match(reg));
    console.log(reg.test(str));
    console.log(reg.exec(str));
    

    二、元字符
    1.\w:匹配单词(字母)、数字、_
    \W:匹配非单词(字母)、非数字、非_

    var str = "ABC";
    var str = "1";
    var str = "_";
    var str = "-";
    var reg = /\w/;
    var reg1 = /\W/;
    console.log(reg.test(str));
    console.log(reg1.test(str));
    

    2.\d:匹配数字
    \D:匹配非数字

    var str = "abc-1";
    var reg = /\d/;
    var reg1 = /\D/;
    console.log(reg.test(str)); //true 母串里面有数字
    console.log(reg1.test(str)); //true 母串里面有非数字
    

    3.\s:匹配空格
    \S:匹配非空格

    var str = " "; //空格字符的字符串
    var str = ""; //空字符串
    var reg = /\s/;
    console.log(reg.test(str1)); //匹配不到内容
    console.log(reg.test(str)); //匹配到空格
    

    4.\b:匹配单词边界
    \B:匹配非单词边界

    var str = "hello";
    var reg = /\b/g;
    var reg1 = /\B/g;
    console.log(reg.test(str));
    console.log(str.match(reg));
    console.log(str.match(reg1));
    

    三、转义字符
    g为全局内容【匹配到整个母串】
    特殊的转义字符:
    \n 换行
    . 匹配任意字符【匹配不到\n,\r】
    \r 制表符

    var str = "hello world";
    var reg = /./g;
    console.log(str.replace(reg, "xx"));
    var str = "\\"; //第一个斜杠表示转义,第二个斜杠表示真正的\
    var reg = /\\/;
    console.log(reg.test(str));
    

    四、量词:
    {num} 正好有多少个
    {num,} 匹配最少num个,最大无限个
    {num1, num2} 匹配最少num1,最多num2个

    var str = "aaaaaa";
    var reg = /a/;
    var reg1 = /a{6}/; //匹配是否有6个a
    console.log(reg.test(str));
    console.log(reg1.test(str));
    
    var reg = /a{2}/;
    var reg1 = /a{2,}/; //匹配最少2个,最大无限
    console.log(reg.test(str));
    console.log(reg1.test(str));
    console.log(str.replace(reg1, "b"));
    
    var reg = /a{2,5}/g; //匹配最少2个,最大5个
    console.log(reg.test(str));
    console.log(str.replace(reg, "b"));
    

    ^ 以什么开头
    $ 以什么结尾

    var str = "a88888d";
    var reg = /^a/;
    var reg1 = /d$/;
    console.log(reg.test(str));
    console.log(reg1.test(str));
    
    //特殊情况:如果从零开始进行匹配
    var str = "baaa";
    var reg = /a{0,2}/;
    console.log(reg.test(str));
    console.log(str.replace(reg,"c"));
    

    五、贪婪模式与惰性模式:
    贪婪模式 条件*
    惰性模式 条件?
    {num}?
    {num,}?
    {num1,num2}?

    var str = "123456789abc";
    var reg = /\d*/;
    console.log(str.match(reg));
    
    var str = "123456789abc";
    var reg = /\d?/;
    console.log(str.match(reg));
    
    var str = "123456789abc";
    var reg = /\d{2,}?/;  // \d满足数字条件,满足数量的条件?贪婪模式
    console.log(str.match(reg));
    

    六、修饰符:
    g:全局匹配
    i:忽略大小写进行匹配
    m:换行匹配

    var str = "hello world";
    var reg = /./g;
    console.log(str.replace(reg, "6"));
    
    var str = "HELLOHELLO";
    var reg = /hello/ig;
    console.log(str.replace(reg, "6"));
    

    相关文章

      网友评论

          本文标题:正则上

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