day14 正则表达式

概述

正则是用于检验对应的字符串的一种特殊表达式.一般用于用户格式验证.

正则对象声明

使用//来声明

var regexp = /a/ig
console.log(regexp)

使用new关键词声明

//第一个传入的是对应的正则表达式 第二个传入为当前匹配模式
var regep = new RegExp('a','g')
console.log(regexp)

正则的匹配修饰符

  • g 全局
  • i 不区分大小写
  • m 换行
  • s 单个匹配

正则对象的方法及属性 

方法

  • test 验证是否匹配
  • exec 返回匹配的数组
    //正则对象的方法 boolean
    console.log(regexp.test('hello'))//false
    console.log(regexp.text('apple'))//true
    //exec 执行 返回的是一个数组 类似于match
    console.log(regexp.exec('ooA'))

属性

  • dotAll 是否匹配修饰符
  • flags 匹配修饰符
  • global 是否全局查找
  • ignoreCase 是否不区分大小写
  • lastIndex 下一次匹配的开始索引 
    console.log(regexp.dotAll)//是否匹配修饰符
    console.log(regexp.flags)//匹配修饰符
    console.log(regexp.global)//是否全局查找
    console.log(regexp.ignoreCase)//是否不区分大小写
    console.log(regexp.lastIndex)//下一次匹配的开始索引

正则表达式中的元字符(特殊字符)

  • ^表示开头
  • $表示结尾
    var regexp = /^ab$/ //以a开头 以b结尾
    console.log(regexp.test('ab'))//true
    console.log(regexp.test('a1b')//false
  • []表示里面的任意一个元素
    //[]表示里面的任意一个元素
    var reg = /^[abc]a$/ //只匹配到aa ba ca
    console.log(reg.test('ab')) //true
    var reg = /^[abc][ab]$/ //只匹配aa ab ba bb ca cb
    console.log(reg.test('ab'))//true

  • {}表示个数
    {n} 表示n个
    {n,m} 表示n到m个(必要条件n>m)
    {n,}表示n到无穷个
    //{表示个数}
    var reg = /[abc]{2}/ //里面包含 /[abc]{2}/==/[abc][abc]/
    console.log(reg.test('ab'))//true
    var reg = /^[abc]{2,3}$/
    console.log(reg.test('abc'))//true
    var reg = /[a]{2,}/
    console.log(reg.test('aaab'))//true
  • ()表示分组
    var reg = /(ab){2}/ //abab
    console.log(reg.test('abaa'))//false
  • 数字的表示方式
    \d 表示数字 \D表示非数字
    [0-9]表示数字
    //\d表示数字 [0-9]
    console.log(/\d/.test('1a'))//true
    console.log(/[0-9]/.test('1a'))//true
    //\D表示非数字 大小的表示相反
    console.log(/\D/.test('123')) //false
  • 字母表示方式
    console.log(/A-Z/.test('abc'))//false
    console.log(/[a-z]/.test('abc'))//true
    console.log(/[A-z]/.test('abc'))//true
  • \w表示数字字母下划线 \W表示非数字字母下划线
    // \w表示数字 字母及下滑线 \W表示非数字 字母 下滑线
    console.log(/\w/.test('_')) //true
    console.log(/\w/.test('1')) //true
    console.log(/\w/.test('a')) //true
    console.log(/\w/.test('-')) //false
    console.log(/\W/.test('-')) //true
    console.log(/\W/.test('_')) //false
  • \s表示空白字符 \S表示非空白字符
    //\s表示空白字符 \S表示非空白字符
    console.log(/\s/.test(" ")) //true
    console.log(/\S/.test(" ")) //false
    console.log(/\S/.test("a")) //true
  • +表示一个到多个 相等于{1,}
  • ?表示0个到1个 相当于{0,1}
  • *表示0个到多个 相当于{0,}
    // +表示0到多个 ?表示0个到一个 *表示0个到多个
    console.log(/^([\d\w]*)+$/.test('19w8101397198347')) //true
    console.log(/^([\d\w]*)+$/.test('?_+1'))//false
    console.log(/^([\d\w]*)+$/.test(''))//true
  • | 或者符号
    //| 或者 | 或符号建议和分组一起使用
    console.log(/^([a]{2})|([b]{3})$/.test('aa'))//true
    console.log(/^([a]{2})|([b]{3})$/.test('bbb'))//true
    console.log(/^([a]{2})|([b]{3})$/.test('abb'))//false
  • . 表示任意字符
    //. 任意字符串
    console.log(/^.$/.test('1')) //true
    console.log(/^.$/.test('b'))//true
    console.log(/^.$/.test('?'))//true
    console.log(/^.$/.test(' '))//true

正则的转义

转义的概念就是将元字符变为普通的字符串

  • 使用[]来进行转义 只能对应的普通的元字符(?*.+等)
  • 使用\转义字符 可以对任意进行转义
    //转义 第一种方式将对应的非修饰的字母 不带反斜杠开头的元字符 使用[]把他包起来
    console.log(/[?]/.test('?'))
    console.log(/[.]/.test('.'))//true
    console.log(/[.]/.test('a'))//false
    console.log(/[\d]/.test('\d')) //false
    console.log(/[\w]/.test('\w')) //false
    //第二种使用转义字符 \
    console.log(/\[\]/.test('[]'))
    console.log(/\./.test('.'))

支持正则的字符串的方法

  • search 查找
  • match 匹配
  • replace 替换
  • split 分割

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值