zoukankan      html  css  js  c++  java
  • JavaScript正则表达式学习笔记

    这篇文章主要是记录一些正则表达式的知识,并没有学习过程,主要用来记录和方便查找,如果要学习的话必须多训练

     

     https://regexper.com/  正则图形工具

     

    正则表达式特殊意义字符:

    " * " 表示在前面的字符 可出现0-n次

     

    “ + ” 表示前面的字符 可出现  1-n次

     

    “ ?”表示前面的字符 可出现0-1次

     

    “ [  ] ” 方括号表示选择器,  根据内容的不同选择所需的字符串

      例如: [ abc ] 表示字符串中出现a或b或c

          [a-zA-Z] 表示字符串中出现字母表中的一个字符

          

    “{}” 放在字符后表现出现次数

      例如: "a{1,4}"表示a出现1-4次

        ”b{3,}“表示b出现至少3次

      注意:在使用正则表达式修改字符串时,正则表达式默认是倾向于匹配更多的项,如果可以匹配4次就不匹配1次,这个叫贪婪模式

          如果要使它倾向于匹配更少的项,在{}后加?, 例如"a{1,4}?"

     

    “()” 表示编组,例如(abc)? 表示“abc”这个字符串连续出现 0 - 1 次;

        编组例子:"2018-9".replace(/(?:d{4})-(d)/, "$1 months");

        结果是:9 months

        使用(?:)取消它的编组序号

     

    "  @ "  

     

    "  ^  "  start of line 由此开头 

      当出现在[]方括号里时表示取反

        例如:   [^abc] 表示不存在abc中任意一个

     

    " $ " end of line 由此结束

     

     

        单词边界  word boundary

    B  非单词边界

     

     

    前瞻

    w(?=d)判断一个字符,后面是否是数字,如果是,匹配该字符

    比较wd这个是匹配字符和数字

     


    JavaScript正则

    由 /  开头和结尾

    例如

    /[a-z]./  引号加不加无所谓,/一定要加

    在结尾处插入字符实现不同功能要求

    i: 是否大小写敏感

    m :多行处理,即不把换行字符当普通字符处理,从而处理多行

     

    string.replace(//, "");第一个是参数是正则表达式,第二个是替换的内容

    替换内容:"$1" 美元符号加数字表示在正则表达式用()分组的东西


    更新于2021/08/19

    承接上面一句话,$number的作用:

    $number从$1开始,如上面所说是表示再括号中的分组(?:)除外,那么应该如何使用呢,它可以用来代替一些比较复杂的前置验证或后置验证

    例如仅仅改变时间格式中的天数:

      let date = '0-0-0';
      let day = '12'
      let month = '01';
      let year = '2013';
      let res;
      // 在这里表示一个时间的初始状态
      if (!new RegExp('d+-d+-d+').test(date)) {
        // 测试是否符合时间格式(比较宽松的检测)
        res = date.replace(/(d+)-(d+)-(d+)/, `$1-$2-${day}`);
        res = res.replace(/(d+)-(d+)-(d+)/, `$1-${month}-$3`);
        res = res.replace(/(d+)-(d+)-(d+)/, `${year}-$2-$3`);
      }
      console.log(res);

    最后打印的是 2013-01-12

     

     

     

     

  • 相关阅读:
    Lucene in action 笔记 case study
    关于Restful Web Service的一些理解
    Lucene in action 笔记 analysis篇
    Lucene in action 笔记 index篇
    Lucene in action 笔记 term vector
    Lucene in action 笔记 search篇
    博客园开博记录
    数论(算法概述)
    DIV, IFRAME, Select, Span标签入门
    记一个较困难的SharePoint性能问题的分析和解决
  • 原文地址:https://www.cnblogs.com/incredible-x/p/9630254.html
Copyright © 2011-2022 走看看