论我一个小白是如何发现某个比赛网站注册的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语言不是特别会,正则表达式应该都是通用的吧,基本函数也知道如何找到。

相关推荐
WebInfra6 分钟前
Rspack 2.2 发布:30+ 项性能优化,拥抱 Solid 2.0
前端·javascript·前端框架
额额额对了13 分钟前
Linux 进程管理详解:从概念到实战
java·服务器·前端
fatcoder15 分钟前
玩转 Redis · Set 篇
前端·redis·后端
爱喝麻油的小哆15 分钟前
🐾 Day 5|桌面数字人-接入llm可以对话啦
前端·three.js
我叫黑大帅19 分钟前
关于没有对生产者做校验的思考
前端·面试·架构
掘金者阿豪30 分钟前
你的公网 IP 是专线还是动态变化的?一文讲透动态 IP 与固定 IP 的那些事
前端·后端
invicinble39 分钟前
把握理解技术文章转化为工程水平的深度理解
前端
前端炒粉43 分钟前
fetch+readablestream(Streamable)流式输出
java·服务器·前端
风骏时光牛马1 小时前
AIRAG服务异常监控告警
前端
大厂码农老A1 小时前
汤森路透的座上宾?Qwen3.5-397B-A17B到底有什么本事?
前端·人工智能·后端