关于正则优先级踩的坑【匹配图片后缀结尾】

无道 2019-09-18 0 条评论 编程相关 阅读769 手机阅读

前言

其实之前还真没注意到正则表达式总还有“优先级”这一说法。不过平常注意一下就可以了【踩过一次坑之后自然就会记住了~】。

采坑

一个很简单的应用:验证图片后缀是否允许。

let a = '1.jpg';

console.log(/\.gif|png|jpg$/i.test(a));

截图-1568798151

咋一看,好像没问题。

但是这样呢?

let a = '1.pngdfadsf';

console.log(/\.gif|png|jpg$/i.test(a));

截图-1568798151

还是对的?我们想要判断图片必须以要求的结尾,但是这样返回的也是正确的?

因为|的优先级太低了,所以以上正则实际意思是:

  • 匹配有.gif
  • 匹配有.png
  • 匹配有.jpg 并且是以.jpg结尾的

解决方法很简单:加括号强行提升优先级

let a = '1.pngdfadsf';

console.log(/\.(gif|png|jpg)$/i.test(a));

截图-1568798386

踩过坑之后应该就会注意一下了。

全文完 [
有帮助?打赏
支付宝打赏
微信打赏
]
修改: 2019-09-18 17:21
这篇文章还没有评论呢~
点击刷新/生成验证码
It's me
昵称:无道
坐标:成都
性别:
一个人,一介学生,一个儿子~ 愿你我都被世界温暖以待
迷思爱 公众号

新建了个公众号,会不定期分享一些小玩意,有提升效率的办公软件、有一些黑科技的软件、或教程等等。

爷~,要不关注下~~