野生前端程序员补课学习---js正则表达式

本文详细介绍了正则表达式的基础概念、常用写法和函数应用,如search、match和replace,以及原子表、量词和转义字符等核心知识点。通过实例解析了正则在前端开发中匹配、查找和替换字符串的常见场景,助你提升前端开发中的正则运用能力。
摘要由CSDN通过智能技术生成
  • 正则表达式

  1. 概念
    1. 强大的字符串匹配工具,是一种用户写定的计算机能看懂的规则。
  2. 写法
    1. js风格(new RegExp('a','i'))--比较符合js使用习惯
    2. perl风格(/a/i)--是正则的创始语言
  3. 可用正则的常用函数
    1. search(找到匹配项出现的位置)
      let str='sdasKkdjasjd';
      let re1=new RegExp('k')
      let re2=new RegExp('k','i')    //i----忽略大小写
      let re3=/k/
      let re3=/k/i
      
      str.search(re1)   //5
      str.search(re2)   //4
      str.search(re3)   //5
      str.search(re4)   //4
    2. match(提取匹配项)
      let str='sdas4kdj56a8sjd';
      let re1=/\d/      //\d---数字  
      let re2=/\d/g     //g---全局匹配    
      let re3=/\d\d/g      
      let re4=/\d+/g    //+---量词,任意个 
      
      str.match(re1)   //4
      str.match(re2)   //4,5,6,8
      str.match(re3)   //56
      str.match(re4)   //4,56,8
    3. replace(替换匹配项)

      let str='1234abcba4321';
      let re1=/a/;
      let re2=/a/g;
      
      str.replace(re1,'9')     //12349bcba4321
      str.replace(re2,'9')     //12349bcb94321
  4. []--原子表(定义匹配的字符范围)

    1. [asf](任选一个即可)

      let str='158 136 133 139 137 185 157 13a 13n 187'
      let re1=/13[35n]/g
      let re2=/1[589]7/g
      
      str.match(re1)            //133,13n
      str.match(re2)            //157,187
    2. [a-z](选定字符范围)

      let str='158 136 133 139 137 185 157 13a 13n 187'
      let re1=/13[3-7]/g
      let re2=/13[a-z]/g
      
      str.match(re1)            //136,133,137
      str.match(re2)            //13a,13n
    3. [^a-z](排除字符范围)

      let str='158 136 133 139 137 185 157 13a 13n 187'
      let re1=/13[^3-7a-z]/g
      let re2=/1[^38]7/g
      
      str.match(re1)            //139
      str.match(re2)            //157
  5. 转义字符

    1. .--可表示任意字符(不建议用)

    2. \d--数字===[0-9]

    3. \w--英文,数字,下划线===[a-z0-9_]

    4. \s--空白字符(空格,tab等)

    5. \D--除了数字外的任意===[^0-9]

    6. \W--    ===[^a-z0-9_]

    7. \S--非空白字符

  6. 量词(字符出现个数)

    1. {n}--正好出现n次

      1[1-9]{2}\d{8}    //匹配手机号,第一位是1,第2,3位为1-9之间的数字,后10位为任意数字
    2. {n,m}--最少n次,最多m次

      [1-9]\d{5,10}        //匹配6到11位的qq号
    3. {n,}--最少n次,最多无限

    4. +--任意次==={1,}

    5. ?--可以出现亦可以没有,但最多出现一次==={0,1}

      (0\d{2,3}-)?[1-9]\d{7}        //固定电话的正则,区号可以没有。()是用来分组的
    6. *--可以没有也可以有任意位==={0,}

以上就是前端能够用到的简单的正则表达式规则,能够解决工作中遇到的90%需要用正则解决的问题。但是剩下的10%才是能够证明你牛逼的工具。所以我还会边学习边编辑一个前端的进阶或者说是更详细的正则学习笔记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值