正则对象 主要前面的基本要记 后面的可以百度

正则对象的定义方式

第一种定义 常用

 var regx = /^b$/ //声明的就是一个正则对象  ^表示开头 $表示结尾 只匹配一个b这个一个单词

第二种定义

var regx1 = new RegExp('^a$') //声明一个正则对象 只匹配a这个单词

[] 表示其中的一个元素

var regx2 = /^[abcdef]$/ //匹配a  或者 b  或者 c  或者d  或者 e  或者 f 其中一个单词

{} 表示个数

var regx3 = /^[abc]{2}$/ //匹配 ab ac ba bc cb ca aa bb cc 意思是abc三个元素任意俩个组成的单词

g全局匹配 (全局搜索所有结果 没有全局找到第一个就不找了) i表示不区分大小写

 var regx4 = /^[ab]{2}$/gi //匹配 aa ab ba bb ba aA Aa Ab AA Ba Bb BA bA aB

使用第二种定义如果语言加上g或i关键词

 var regxObj = new RegExp('^a$', 'gi')

修饰符

+表示1个到多个

 var regx5 = /^[a]+$/ //匹配 a aa aaa aaaa... 匹配一个或多个a

*表示0个到一个

 var regx6 = /^[ab]*$/

? 表示0个到一个

 var regx7 = /^a[ab]?$/ //匹配a aa ab

对应正则对象的方法

test 是否符合对应的表达式 test() 里面的参数位string类型 返回结果位boolean类型

var regx7 = /^a[ab]?$/ //匹配a aa ab
console.log(regx7.test('a')); //true
console.log(regx7.test('aba')); //false

exec方法 找打符合的所有结果 返回数组 没有匹配的返回null

var regx7 = /^a[ab]?$/ //匹配a aa ab
console.log(regx7.exec('ab'));

针对于里面的[] * + . 等等 没有办法直接解析 需要加转义符\

var regx8 = /^\[\]$/
var regx9 = /^\*$/
console.log(regx8.test('[]'));
console.log(regx9.test('*'));

. 表示任意字符 如果你想要匹配.需要\转义 .匹配点

var regx = /./
var str = 'abc'
console.log(regx.test(str));

\s 表示空白 包括空格 换行符 tab.. \S 相反 非空

var regx1 = /\s/
var regx2 = /\S/
console.log(regx1.test(str));
console.log(regx2.test(str));

\d 比爱是数字 \D非数字

var regx3 = /\d/
var regx4 = /\D/
console.log(regx3.test(str));
console.log(regx4.test(str));

\w 表示数字字母下划线相当于[a-zA-Z0-9] \W非数字字母下划线 ![a-zA-Z0-9]

var regx5 = /\w/
var regx6 = /\W/
console.log(regx5.test('_'));
console.log(regx6.test('_'));

() 这个里面没有大的意义 主要做代码的规范分割

var regx7 = /([A][B]){2}/ //匹配的所有元素 abab
console.log(regx7.test('abab'));

可以直接去除括号里面的值 向上就近 RegExp.$1

console.log(RegExp.$1); //去除第一个括号的匹配内容
console.log(RegExp.$2); //没有第二个括号的话 拿到内容为空

| 或

var regx8 = /abc|bcd/ //匹配abc 或者是bcd
console.log(regx8.test('abc'));
console.log(regx8.test('bcd'));

如果加了?后面的括号里面的内容不能捕获了 RegExp.$获取

var regx9 = /\w{6}/ //忽略掉了
console.log(regx9.test('123456'));
console.log(regx9.test('12345'));
console.log(regx9.test('123456789'));
console.log(regx9.test(''));

m换行匹配 g匹配全局 i忽略大小写

{}是表示个数 可以规定个数的范围 {1,2} 表示1个到2个 {1}表示一个 {2,}表示一个到多个

console.log((/a{1,2}/.test('111'))); //表示a是1个或者2个

支持正则的方法

string 类型支持正则的方法

split 截取方法

replace 替换方法支持正则

seach 搜索方法

match 正则对象的exec方法很像 返回也是一个数组 里面的元素为匹配的结果 (返回第一个找到的)

var regx2 = /[abc]{2}/
console.log('abca'.match(regx2));

正则对象的方法

test方法 判断是否有匹配的 有返回true 没有返回fals

exec方法 返回一个数组 数组里面为匹配的结果(返回第一个找到的)

如果加g的话 从左往右找 找到的元素就不管了

var regx3 = /[abc]{2}/g
console.log('abcabb'.match(regx3)); //全局查找

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值