正则相关知识。

正则

正则表达式概述

  1. 什么是正则?
    用于匹配字符串的一组规则。

  2. 正则的作用?
    主要用于表单验证和解决一些复杂的字符串问题。

声明正则?

  1. 字面量: /正则表达式/标识位
  2. 构造函数: new RegExp(‘正则表达式’,‘标识位’)

正则的元字符(三三二 三个一)

  1. : { } [ ] ( )
    { } : 表示限制一个或一组字符连续出现的次数
    {m} : 表示一个或一组字符连续出现m次
    {m,} : 表示一个或一组字符连续出先m 至 无限次
    {m,n} : 表示一个或一组字符连续出现m 至 n 次

    [ ] : 表示范围

    ( ) :表示组

  2. : * + ?
    * :表示 * 前一个或一组字符连续出现0 至 无限次 {0,}
    + : 表示 + 前一个或一组字符连续出现1 至 无线次 {1,}
    ?:表示 ? 前一个或一组字符连续出现0 至 1 次 {0,1}

  3. : ^(断头) $(断尾)

    ^ : 
    写在正则表达式的开头,表示必须以什么开头
    写在[ ] 里的开头,表示取反
    
    $ :必须以什么结尾
    
  4. 三个一 : . | \

    	. : 表示模糊匹配任意一个字符
    	| : 表示或结合组一起使用
    	\ : 转义符
    		\d :[0-9] 数字
    		\D :[^0-9] 非数字
    		\w : [a-zA-Z0-9_] 数字字母下划线
    		\W : [^a-zA-Z0-9_] 非数字字母下划线
    		\s : 表示空白
    		\S :表示非空白
    		\b :表示单词边界
    

正则的方法

  1. 正则表达式.test(字符串) : 判断字符串中是否包含了正则的内容,返回布尔值
  2. 正则表达式.exec(字符串) : 返回伪数组

处理正则的字符串方法

  1. 字符串.match(正则) : 返回伪数组
  2. 字符串.search(正则) : 类似于indexOf,查找正是匹配内容在字符串中第一次出现的下标位置,如果没有找到,返回 -1
  3. 区别
//1. 无g无组
        var str = 'how do you do';
      	var re = /do/;
        console.log(re.exec(str));  //['do']
        console.log(str.match(re)); //['do']

        //2. 有g无组   match 全部匹配
        var str = 'how do you do';
        var re = /do/g;
        console.log(re.exec(str));  //['do']
        console.log(str.match(re)); //['do','do']

        //3. 有组无g   两个都是获取一个父级(整个正则匹配的内容)和多个子级(由组匹配的内容)
        var str = 'zoo 2021';
        var re = /([a-z]+) (\d+)/;
        console.log(re.exec(str));  //["zoo 2021", "zoo", "2021"]
        console.log(str.match(re)); //["zoo 2021", "zoo", "2021"]

        //4. 有组有g     match 获取所有的父级
        var str = 'zoo 2021,too 2000';
        var re = /([a-z]+) (\d+)/g;
        console.log(re.exec(str));  //["zoo 2021", "zoo", "2021"]
        console.log(str.match(re)); //["zoo 2021", "too 2000"]

标识位

1. i   : 表示不区分大小写
2. g   : 表示全局匹配
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值