• 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

     

     

     

     

  • 相关阅读:
    准备用协程模拟经典的生产者消费者
    重载操作符号
    对象池
    ssh加key
    oracle存储过程(PL/SQL)
    获取服务器ip地址
    【STL系列】结构体排序
    strtol sort snprintf snscanf strtok
    cxGrid动态创建带CheckBox列时遇到的问题...
    Windows2003 安装PostgreSQL9.0 UUID解决‘ERROR:无法载入程式库’问题
  • 原文地址:https://www.cnblogs.com/incredible-x/p/9630254.html
Copyright © 2020-2023  润新知