当前位置: 代码迷 >> 综合 >> JavaScript正则表达式基础学习笔记
  详细解决方案

JavaScript正则表达式基础学习笔记

热度:92   发布时间:2024-03-10 00:59:58.0
  • 元字符
  1.  .	匹配除换行符以外的任意字符
    
  2. \w	匹配字母或数字或下划线或文字
    
  3. \s	匹配任意的空白符
    
  4. \d	匹配数字
    
  5. \b	匹配单词的开始或结束
    
  6. ^	匹配字符串的开始
    
  7. $	匹配字符串的结束
    

例如:
匹配有abc开头的字符串:/babc或^abc
匹配8位数字的qq号码:^\d\d\d\d\d\d\d\d$

  • 重复限定符
    1.  *	重复零次或更多次
      
    2.  +	重复一次或更多次
      
    3.  ?	重复零次或一次
      
    4.  {n}	重复n次
      
    5.  {n,}	重复n次或更多次
      
    6.  {n,m}	重复n到m次
      

例如:
匹配8位数字的qq号码可写为:^\d{8}$
匹配以a开头的,0个或多个b结尾的字符串:^ab*$

  • 分组

    •   * 限定符作用范围是与它左边最近的一个字符
      
    •   当我们需要ab同时被 * 作用时需使用小括号即^(ab) *
      
  • 转义

    •   如果匹配的字符串含有小括号(与^(ab)*中的小括号冲突),此时需要使用 \ 进行转义  
      
    •   例如:匹配以(ab)开头的字符串:^(\ (ab\ )) * 
      
  • 条件或

    •   手机号,国内的手机号码都有属于自己的号段,例如联通有130/131/132/155/156/185/186/145等号段。
      
    •   假设需要匹配这些号段,那么可以使用正则表达式进行表达(手机号码为11位):^(130|131|132|155|156|185|186|145)\d{8}$
      
  • 区间

    •   正则中可用[ ]来表示区间条件
      
    •   例如:0到9可写成[0-9]、A到Z可写成[A-Z]、限定数字如[165]
      
    •   上述手机号码的例子可以写成^((13[0-2])|15[56])|(18[5-6])|145)\d{8}$
      

本文参考知乎作者学习(点击跳转)