开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第26天,点击查看活动详情
使用断言规范价格的格式
有这么一段实习生撰写商品描述,其中商品价格中有这么一段,有的商品的价格精确到了分,有的则是精确到了元,老板一看很是生气,毕竟一分钱也是钱,所以怒找人把这个商品的金额全部改成统一的精确到分,然后刚好实则棒学习了正则表达式,实则棒说我来搞定,于是他写出了下面这个正则表达式,首先匹配所有的数字有小📖和没小数的都可后面是元的字符,然后将第二组如果是.00那么就还是.00,否则加个.00,然后把分组0到2保留下来并合并起来,全局替换,所有的金额都统一成精确到分的了。
let shizebang= `js 100元 200次 php 200元 10 java 10.00元 1次`
const reg=/(\d+)(.00)?(?=元)/ig;
console.log(shizebang.replace(reg,(v,...arg)=>{
arg[1]=arg[1]||'.00';
return arg.splice(0,2).join('')
}))
?<=断言匹配
有一次公司的网站被黑客黑了,黑客把公司网站的链接全都换成的娱乐的网站地址,老板急了,直接生气了,说年终奖没了,然后实则棒说他有办法快速恢复,写了一个小正则表达式,首先断言(?<=href=(['"]))就是匹配的字符前面一定是herf=单引号或者双引号,然后给单引号和双引号一个分组,后面就以这个分组结束,如果是单引号开头必须单引号结束,双引号开头双引号结束。然手这个正则匹配的就是所有的herf后面的网址,例如https:www.bilibili.com ,然后统一换成公司的网址就可以了
let shizebang= `
<a href="https:www.baidu.com"></a>
<a href="https:www.bilibili.com"></a>
<a href="https:www.google.com"></a>
`
const reg=/(?<=href=(['"]))(.*)\1/ig
console.log(shizebang.replace(reg,(v,...arg)=>{
return "https:wwww.shizebang.com"
}))