正则表达式及字符串常用方法

一. 简单介绍一下正则表达式的常用方法

test

判断字符串是否匹配正则表达式

let reg = /ab/g;
let str = 'ab@@Ab222#####ab';
console.log(reg.test(str)); // true
let str1 = 'a@@Ab222#####ac';
console.log(reg.test(str1)); // false

compile

一般用于修改正则表达式

let reg = /ab/g;
reg.compile('ac');
console.log(reg); // ac

exec

对字符串进行匹配后返回一个数组 ,无匹配时返回null

let reg = /ab/g;
let str = 'ab@@Ab222#####ab';
console.log(reg.exec(str)); // ['ab', index: 0, input: 'ab@@Ab222#####ab', groups: undefined]

二. 字符串方法与正则表达式的结合使用

search

查询字符串中与正则表达式第一个匹配的下标,没有则返回-1

let reg = /ab/g;
let str = 'ab@@Ab222#####ab';
console.log(str.search(reg)); // 0

replace

替换匹配正则的内容(第一个参数为正则表达式,可将符合正则匹配的内容全部替换)

let reg = /ab/g;
let str = 'ab@@Ab222#####ab';
console.log(str.replace(reg, 'EEE')); // EEE@@Ab222#####EEE

注:如果第一个参数为字符串,则只会替换匹配到的第一个内容

let reg = /ab/g;
let str = 'ab@@Ab222#####ab';
console.log(str.replace('ab', 'EEE')); // EEE@@Ab222#####ab

match

一般用于全局匹配,返回一个数组,内容为匹配的结果,无匹配时返回null

let reg = /ab/g;
let str = 'ab@@Ab222#####ab';
console.log(str.match(reg)); // ['ab', 'ab']

matchAll

一个参数,为正则表达式对象。如果不是正则表达式则会使用new RegExp(obj)隐式转换为正则表达式。表达式必须设置为 g (全局模式)否则会报错。

返回值为一个迭代器,可以使用for…of…遍历,或者用扩展符(…)或Array.from()实现一些功能

let reg = /ab/g;
let str = 'ab@@Ab222ab#####';
console.log(...str.matchAll(reg));
// ['ab', index: 0, input: 'ab@@Ab222ab#####', groups: undefined] ['ab', index: 9, input: 'ab@@Ab222ab#####', groups: undefined]

split

切割字符串,有两参数:

第一个参数必需,为字符串或正则表达式,从该参数指定的地方分割;

第二个参数可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

let reg = /ab/g;
let str = '-----ab@@Ab222ab#####';
console.log(str.split(reg)); // ['-----', '@@Ab222', '#####']

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值