前言
关于正则的文章以后会逐渐整理成合集,之前对正则的使用场景很少,主要也是了解的少,业务场景能使用到正则的机会很多,而且能减少代码量,好吧,开始~
后行断言
合集的第一篇,就是关于后行断言,什么意思呢?
(?<=[\d]): 指从某一数字(不含该数字)向后(即从右到左)检索,换句话说从末尾开始检索。
const reg_examples = /(?<=\$)foo/g
'$foo #foo %foo'.replace(reg_examples, 'bar')
// 以上代码的执行顺序是,先匹配foo,然后再匹配$,“先右后左”
千分位分隔符
千分位是一个常用的场景了,可以利用后行断言来实现它。
const num = '123456789.121'
const reg = /(?<=[\d])(?=(\d{3})+(?![\d]))/g
var newNum = num.replace(reg, ',')
// res '123,456,789.121'
?=(\d{3})+,中的+,如果没有,就只会匹配一次,变成'123456,789.121'
上面的正则只是后行断言应用到的场景之一
其他
?=匹配任何其后紧接指定字符串 n 的字符串
?!n匹配任何其后没有紧接指定字符串 n 的字符串`
结尾
正则还挺奇妙的,虽然用一段js代码也能实现,但是用正则不是更优雅吗,哈哈哈