正则对象相关知识

目录

 正则的创建

正则修饰符 

正则的检测方法

正则的元字符

正则的量词

正则的特殊操作  


定义:正则表达式(正则对象) 是js中给我们提供的一种 用来定义监测规则的对象,我们可以通过正则对象 定义一些检测规则 用来检测字符串

完整定义:正则是一组由 特定字符特定字符的组合 所组成的 表达式

 正则的创建

  • 字面量创建

    • var 变量 = /正则内容/

  • 实例化创建

    • var 变量名 = new RegExp("正则内容")

正则修饰符 

每一个正则对象 都可以设置修饰符 来给正则对象 添加一些特定的功能

  • 修饰符的写法:

//字面量创建
var 变量 = /正则内容/修饰符
//实例化创建
var 变量 = new RegExp("正则内容","修饰符")
  • 我们实际开发中 比较常用的修饰符有以下两个

    • i(ignore) 可以忽略大小写

    • g(global) 可以全局监测

正则的检测方法

  • 正则自身的方法

    • test

      • 用法:正则.test("要检测的字符串");

      • 作用:使用正则 检测要检测的字符串 如果字符串 满足正则的规则,返回值为true 如果不满足 返回false

      • 注意:正则检测字符串的规则 就是看看字符串中是否包含正则规定的内容 如果包含 就检测成功 如果不包含 就失败

    • exec

      • 用法:正则.exec("要检测的字符串");

      • 作用:使用正则 检测要检测的字符串 如果字符串满足正则的规则,返回值为一个伪数组 否则 返回null

  • 字符串的方法

    • replace

      • 用法:字符串.replace(正则表达式,新片段)

      • 作用:使用正则 检测字符串 将检测到的结果 使用 新片段 替换

    • match

      • 用法:字符串.match(正则表达式);

      • 作用:和正则的exec作用相同

    • search

      • 用法:字符串.search(正则)

      • 作用:使用正则在字符串中 进行检测 将检测到的结果的索引 返回出来

      • 注意:获取的是第一次检测到的结果的索引

    • split

      • 用法:字符串.split(正则表达式)

      • 作用:使用正则表达式 检测到的结果 作为 切割标识 将字符串切割为数组

正则的元字符

  • 正则是一个由 一些特定字符 和 特定字符的组合 组成的 表达式

  • 这里说道的特定字符 和 字符组合 就是元字符

  • 元字符:在正则中 可以表示一些特定含义的 字符 或 字符组合

    • . :表示 要检测 除了换行符(/n)之外的任意字符

      • /./

    • [范围]

      • 表示 要检测 指定范围内的字符

      • /[0-9a-zA-Z]/ 表示要检测 任意数字或字母

    • [^范围]

      • 表示 要检测 指定范围之外的字符

      • /[^0-9a-zA-Z]/ 表示 要检测 特殊字符 或 汉字

    • \d 和 \D

      • \d : 表示要检测任意数字 相当于[0-9]

        • /\d/ 就表示 要检测一位任意数字

      • \D : 表示要检测任意非数字字符 相当于[^0-9]

    • \w 和 \W

      • \w : 表示要检测 数字、字母或下划线 相当于[0-9a-zA-Z_]

      • \W : 表示要检测 非数字、字母、下划线 相当于 [^0-9a-zA-Z_]

    • \s 和 \S

      • \s : 表示要检测 空格 \n \t(制表符) 等空白字符 相当于[ \n\t]

      • \S : 表示要检测 非空白字符

    • \b 和 \B

      • \b : 表示要检测 字符边界

      • \B : 表示要检测 无字符边界

      • 在编写英文语句的时候 我们需要使用空格 将单词隔开 这里的空格就是字符边界

    • $和^

      • /^内容/ 表示 正则要求 被检测的字符串 必须以指定内容开头

      • /内容$/ 表示 正则要求 被检测的字符串 必须以指定内容结尾

      • /^内容$/ 表示 正则要求 被检测的字符串的内容 必须和正则要求的内容完全相同 严格模式

正则的量词

 在正则中我们可以在指定内容的后面 添加量词 来表示指定内容的出现次数

    • /内容?/

    • 表示 前面的内容出现0次或1次

  • +

    • /内容+/

    • 表示 前面的内容出现 至少一次

  • *

    • /内容*/

    • 表示 前面的内容 可以出现任意多次

  • {}

    • {n}

      • /内容{数字}/

      • 表示 前面的内容 要出现 指定数字的次数

    • {n,m}

      • /内容{n,m}/

      • 表示 前面的内容 要出现 至少n次 至多m次 

正则的特殊操作  

  • 或运算:

    • 在正则中 也存在或运算 运算逻辑 和 逻辑运算符完全相同

    • 写法: |

    • 例如:/^张(三丰|翠山|无忌)$/ 表示我要检测的字符串内容 可以是张三丰 也可以是 张翠山 也可以是张无忌

  • 分组

    • 在正则中 我们使用小括号 包裹起来的内容 就被称为 分组

    • 分组的意思是 小括号内部的内容是一个整体

    • 注意:带有分组的正则在验证的时候 会先使用正则表达式 对字符串进行检测 之后 再分别使用每一个分组 对字符串 进行验证

    • 单独获取分组的验证结果

      • 写法:RegExp.$n

      • 作用:获取第n个分组的检测结果

      • 注意:n不是索引 是编号 因此从1开始

      • 注意:在单独获取分组的检测结果之前 一定要先 使用正则对字符串进行检测。

 前瞻后顾

  • 前瞻:?=

    • 写法:/内容1(?=内容2)/

    • 表示:要检测 后面内容为 内容2 的 内容1

  • 负前瞻

    • 写法:/内容1(?!内容2)/

    • 表示:要检测 后面内容不是内容2 的 内容1

  • 后顾

    • 写法:/(?<=内容2)内容1/

    • 表示:要检测 前面内容是内容2的内容1

  • 负后顾

    • 写法:/(?<!内容2)内容1/

    • 表示:要检测 前面内容不是内容2的内容1

案例

//编写检测密码的正则表达式
//密码的检测要求是 6-11位 数字和字母的组合
var reg = /(?!^\d{6,11}$|^[a-zA-Z]{6,11}$)^[a-zA-Z0-9]{6,11}$/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值