JavaScript 正则表达式

正则表达式是用于匹配字符串中字符组合的模式。

 

创建正则表达式的两种方式

    
 // 1 利用new关键字调用RegExp对象的构造函数
 const reg1 = new RegExp(123);   // 很少用这种方式

// 2 创建一个正则表达式字面量
const reg2 = /123/ ;

 

正则表达式中的特殊字符

/*
边界符  ^ 需以某开头   $ 需以某结尾
     var reg = /^admin$/ //   必须 是 admin 才符合

    以下 都是 相当于[]的 任意一个 
    \d 0-9的任意数字  0-9的任意数字 是 \d
    \D 数字以外的字符  D [^0-9] 取反的意思 
    \w 任意个字母数字下划线 等价于 [A-Za-z0-9_]。
    \W 除任意个字母数字下划线外的
    \s 匹配一个空白字符,包括空格、制表符、换页符和换行符。 \t  \r  \n  \v  \f  
    \S 非空格的字符 不是这些空格 \t  \r  \n  \v  \f

    修饰符  
    g : 全局匹配  全局搜索 (str.replace(/特朗普|Trump/, 特朗普)) 字符替换
    i : 忽略大小写 
    gi : 全局匹配 + 忽略大小写 
  
    中括号内 加 ^ 表示取反的意思
  
    量词符 : 设定 某个模式出现的次数 
      * 重复 0 次 或者很多次 
      +  至少1次
      ?  0 次 | 1 次
      {n}   重复 n 次
      {n, }  n+ 次
      {n, m}  n 次 到 m 次
*/

 

检验一段字符串是否包含大写 字母

      // 使用 test 方法 一个在字符串中测试是否匹配的RegExp方法,它返回 true 或 false。
      const regHasUpper = /[A-Z]/g
      const regHasUpper1 = /[A-Z]+/ // 至少1次
      const str1 = 'hey JudE'
      const str2 = 'Do you know English ?'
      const str3 = 'a b c d e f g h i j k l m n o p q r s t u v w x y z'
      console.log(regHasUpper.test(str1))  // true
      console.log(regHasUpper1.test(str2))  // true
      console.log(regHasUpper1.test(str3))  // false

      // 使用 str.search(正则表达式)     一个在字符串中测试匹配的String方法,返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。

      console.log(str2.search(regHasUpper)) //  0
      console.log(str3.search(regHasUpper1)) // -1

      // str.replace() 一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。
      const regTru = /特朗普|trump/gi
      const p1 = '特朗普 是 只 猫 ? Trump is a cat ?'
      const p2 = p1.replace(regTru, '川建国')
      console.log(p2)
     // log: 川建国 是 只 猫 ? 川建国 is a cat ?
 

 

posted @ 2021-07-12 22:56  Naijiaz  阅读(84)  评论(0)    收藏  举报