day13:正则

正则概述

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

正则对象声明

使用//来声明

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

使用new关键词来声明

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

正则的匹配修饰符

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

正则对象的方法及属性

方法

test 验证是否匹配

exec 返回匹配的数组 (类似match)

//正则对象的方法 bool
consloe.log(regexp.test('hello'))//false
consloe.log(regexp.test('apple'))//true
//exec 执行 返回的是一个数组 类似于 match
consloe.log(regexp.exec('00a'))//3

属性

  • dotAll 是否匹配修饰符s
  • flags 匹配修饰符
  • global 是否全局查找
  • ignoreCase 是否不区分大小写
  • lastIndex 下一次匹配的开始索引

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

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

  • ^ 表示开头
  • $ 表示结尾
        var reg = /^ab$/ //以a开头b结尾
        console.log(reg.test('ab'))//true
        console.log(reg.test('aab'))//false

  • [] 表示里面任意一个元素
        var reg = /^[abc]a$/ //只能匹配aa ba ca
        console.log(reg.test('ab')) //false
        var reg = /^[abc][ab]$/ //只能匹配aa ab ba bb ca cb
        console.log(reg.test('ab')) //true
  • {}表示个数

{n} 表示n个

{n,m} 表示n到m个 (必须条件m>n)

{n,} 表示n到无穷个 至少n个

        var reg = /[abc]{2}/ //里面包含了[abc]{2} == [abc][abc]
        console.log(reg.test('ab'))//true
        console.log(reg.test('aab'))//true
        var reg = /^[abc]{2,3}$/ //两个到三个
        console.log(reg.test('aab')) //true
        console.log(reg.test('aabc'))//false
        var reg = /^[abc]{2,}$/ //两个到无穷个
        console.log(reg.test('aabc'))//true
  • ()表示分组
        var reg = /(ab){2}/ //abab
        console.log(reg.test('aa'))//flase
        console.log(reg.test('abab'))//true
  • 数字的表示方式   \d 表示数字  \D 表示非数字   [0-9]表示数字
        console.log(/\d/.test('1sd'))//true
        console.log(/[0-9]/.test('1sd'))//true
        console.log(/\D/.test('1sd'))//true
  • 字母的表示方式:[a-z] [A-Z] [A-z]
        console.log(/[A-Z]/.test('1sd'))//false
        console.log(/[a-z]/.test('1sd'))//true
        console.log(/[A-z]/.test('1sd'))//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非空白字符
        console.log(/\s/.test(' '))//true
        console.log(/\S/.test(' '))//fslae
        console.log(/\S/.test('a'))//true
  • + 表示1个到多个 相当于{1,}
  • ? 表示0个到1个 相当于{0,1}
  • * 表示0到多个 相当于{0,}
        console.log(/^([\d\w]*)+$/.test('1dined'))//true
        console.log(/^([\d\w]*)+$/.test('?dsfa'))//fslae
        console.log(/^([\d\w]*)+$/.test(' '))//false
        console.log(/^([\d\w]*)+$/.test(''))//true
  • | 或者符号
        console.log(/^([a]{2})|([b]{3})$/.test('aab'))//true
        console.log(/^([a]{2})|([b]{3})$/.test('abab'))//fslae
        console.log(/^([a]{2})|([b]{3})$/.test('bbb'))//true
        console.log(/^([a]{2})|([b]{3})$/.test('aba'))//false
  • . 表示任意字符
        console.log(/^.$/.test('aab'))//false
        console.log(/^.$/.test('1'))//true
        console.log(/^.$/.test('b'))//true
        console.log(/^.$/.test('?'))//true

正则的转义

概念

将元字符变为普通字符

  • 使用[]进行转义 只能对应普通的元字符(?*.+等)
  • 使用\转义字符 可以对任意元字符进行转义
        //转义
        console.log(/[?]/.test('?'))//true
        console.log(/[.]/.test('.'))// true
        console.log(/[.]/.test('a'))// false
        console.log(/[\d]/.test('\d'))//false

        console.log(/\[\]/.test('[]'))//true
        console.log(/\./.test('.'))// true
        console.log(/\\d/.test('\d'))// false

支持正则的字符串方法

match 匹配

search 查找

replace 替换

split 切割

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值