论我一个小白是如何发现某个比赛网站注册的bug

前言

在2023年上半年,我参加了中国机器人及人工智能大赛,我们的作品是四足仿生机器人,省赛我们很容易就拿到了省级一等奖(当然这和队伍不多有关系),但是我从接触机器人到比赛也就4天时间,对机器人了解的并不是特别多。在进入国赛初赛,我们花费了大量时间研究比赛和机器人,最终在初赛中大放异彩,进入了国赛决赛的准备工作(只有两天时间),我们加班加点做了个简单模型,由于决赛测试时间只有一天,我们去的比较迟,直到晚上9点才找到机器人,测试场地和我们的备赛场地差别很大,我有点慌,没有进行完整的测试,就草草结束了。也就是说我们的测试时间只有比赛的短短15分钟,起初以为是20分钟。比赛中意外很多,我们的设备(机器人)有个很奇怪的问题,就是在使用网线连接,进行局域网通信,特别慢(连接时间长),也许是地域问题吧,在海南测试期间,我们只花了一秒就连接好了,但是第二天连接又特别慢,所以比赛期间我也不敢过于冒险,只能简单测试,尽量拿到最多的分,剩余时间进行调试(如果花费大量时间调试的话,网线一断,连接得好长时间,对我是很不利的)。最终成绩也一般般,当然最开心的是,剩余时间可以去海南其他地方玩耍啦。这次比赛对我有点遗憾啦。

不知道为什么,我一个计算机专业的特别喜欢机器人,以至于后来的电子科技的投环比赛的那一跳,是真的激起了我对机器人的那种"火",哈哈哈,还有那个小车比赛跑的很快,特别好奇那个算法是双边计算还是单边还是什么呢。算了,不多说了,开始正题吧

起因

昨天晚上看机器人比赛,发现2023中国机器人大赛暨RoboCup比赛开始了,好几个省赛已经比赛结束了,不过作者的省份不太行啦,但还是想参加比赛,就去了报名窗口,一路填写信息,后来在提交注册的那一步总是提示电话格式不正确。

图片中的信息是错误的,这是为什么呢,无论是位数还是开头都是正确的啊,尝试了座机电话,甚至在电话前面加+86和空格等一系列操作,都是错误的。这个让患有强迫症的我一晚上没有睡好。不得不说我是一个很愚蠢的家伙,我居然忘记自己是程序员了,于是我打开了F12

查找问题

打开F12,找到电话窗口对应的标签元素,找到id

然后在源代码中找到js文件夹,下面的register.js文件夹找到那个检验手机号的函数,发现它是这样的

js 复制代码
//验证手机号
function isPhoneNo(phone) { 
var pattern = /^1[34578]\d{9}$/; 
return pattern.test(phone); 
}

正则表达式有问题,第一位匹配了 1 ,第二位匹配【34578】,但是现在手机号已经有了,6和9,因为我的手机号正好第二位是9,所以一直匹配错误。

解决问题

正确的匹配规则应该是

js 复制代码
var pattern = /1([38][0-9]|14[579]|5[^4]|16[6]|7[1-35-8]|9[189])\d{8}$/; 
//这是最合理的匹配规则

至此,原因找到了,我也给主办方反馈了这个问题。进入报名系统的我,发现的参加省赛和专项赛才可以参加国赛,我们省目前任何消息也没有,唉。真羡慕打机器人比赛的那些娃娃。

总结

发现这个问题,得益于在大一了解过一段html,但是js语言不是特别会,正则表达式应该都是通用的吧,基本函数也知道如何找到。

相关推荐
我叫汪枫2 小时前
前端物理引擎库推荐 - 让你的网页动起来!
前端
雾恋7 小时前
最近一年的感悟
前端·javascript·程序员
A黄俊辉A7 小时前
axios+ts封装
开发语言·前端·javascript
小李小李不讲道理8 小时前
「Ant Design 组件库探索」四:Input组件
前端·javascript·react.js
连合机器人8 小时前
晨曦中的守望者:当科技为景区赋予温度
java·前端·科技
郑板桥309 小时前
tua-body-scroll-lock踩坑记录
前端·javascript
慢半拍iii10 小时前
JAVA Web —— A / 网页开发基础
前端
gnip10 小时前
pnpm 的 monorepo架构多包管理
前端·javascript
新手村领路人11 小时前
Firefox自定义备忘
前端·firefox
乖女子@@@11 小时前
css3新增-网格Grid布局
前端·css·css3