正则表达式

147 阅读2分钟

正则表达式

  • 基本语法

    • 字面量语法形式

      • 语法1: let 变量 = /正则表达式/
    • 构造函数语法形式

      • 语法2: let 变量 = regExp( 正则表达式 );
  • 元字符

    • 使用特殊的符号 表示 判断的内容/字符

      \d 数字

      \D 非数字

      \w 数字字母下划线

      \W 非数字字母下划线

      \s 空格

      \S 非空格

      . 非换行

      // \d 有数字就是true
      let reg1 = /\d/
      console.log(reg1.test('skd;akd'))           // false
      console.log(reg1.test('skd;a1345kd'))       // true
      
      // \D   非数字  只要有非数字就可以
      let reg2 = /\D/ ;      
      console.log( reg2.test( '一1二三四1五六4七' ) );    // true
      console.log( reg2.test( '123456' ) );              // false
      
      // \s   空格    只要 有空格就行
      let reg3 = /\s/ ;
      console.log( reg3.test( 'fdasfdfds afasd' ) );          // true
      console.log( reg3.test( 'fdasfdfd safasd' ) );     // false
      
      // \S  非空格 只要有非空格就行
      let res4 = /\S/ ;
      console.log( res4.test( 'fddsfa' ) );       // true
      console.log( res4.test( '    ' ) );         // false
      console.log( res4.test( '' ) );             // false
      
      // .    非换行  只要有非换行内容就可以
      let reg5 = /./ ;
      ​
      console.log( reg5.test( '发的发的所发生的' ) );       // true
      console.log( reg5.test( '     ' ) );                // trueconsole.log( reg5.test( '' ) );                     // false
      console.log( reg5.test( `
      ` ) );                                              // false
      console.log( reg5.test( '\n' ) );                   // false/*
                  用 \S 判断 有没有输入内容 
                      空字符串 字符串都是空格 判断结果是 false
      ​
                  用 . 判断 有没有输入内容
                      空字符串 字符串内容是 \n 判断结果是 false
      ​
                  如果都是空格 \S 是 false   . 是 true         
          */ 
      
    • 边界符 和 限定符

      • 边界符

        /*
        ​
        •          ^  表示起始
        ​
        •          $  表示结束
        ​
        ​
        ​
        •          /^\d$/
        ​
        •            从开头到结尾 必须都是数字
        ​
        •            并且只能是一位数字
        */
        
      • 限定符

        /*        
                  *        任意个数 0 至 正无穷个
        ​
        •          +        1 至 正无穷 个
        ​
        •          ?        0 至 1 个
        ​
        •          {数值}      只能是 数值 个
        ​
        •          {数值,}     数值 至 正无穷 个
        ​
        •          {数值1,数值2}  数值1 至 数值2 个
        */
        
    • 特殊元字符

      /*
                  特殊元字符
                      ()
                          将小括号中的内容作为一个整体判断
      ​
                      |
                          逻辑或
                          正则表达式默认都是执行逻辑与的关系
                          | 表示执行逻辑或的关系
      ​
                      [数值1,数值2,数值3....]
                          []中 设定的任意 一个数值都可以
      ​
                      [数值1-数值2]
                          []中 数值1 至 数值2 的任意内容都可以
                          数值1 至 数值2 必须是相同类型的设定
      ​
                      汉字的正则判断 
                          [\u4e00-\u9fa5]
      ​
                      [^内容]     
                          对内容取反  
      */
      
    • 标识符

      /*
                  标识符  
                      一般都是配合字符串函数使用的正则语法
      ​
                      //i
                          不区分大小写
      ​
                          区分大小写 也成为 大小写敏感
                          不区分大小写 也成为 大小写不敏感
      ​
                      //g
                          全局匹配
      */