论我一个小白是如何发现某个比赛网站注册的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 小时前
HarmonyOS开发实战(5.0)实现二楼上划进入首页效果详解
前端·华为·程序员·移动开发·harmonyos·鸿蒙·鸿蒙系统
everyStudy3 小时前
前端五种排序
前端·算法·排序算法
甜兒.4 小时前
鸿蒙小技巧
前端·华为·typescript·harmonyos
Jiaberrr7 小时前
前端实战:使用JS和Canvas实现运算图形验证码(uniapp、微信小程序同样可用)
前端·javascript·vue.js·微信小程序·uni-app
everyStudy8 小时前
JS中判断字符串中是否包含指定字符
开发语言·前端·javascript
城南云小白8 小时前
web基础+http协议+httpd详细配置
前端·网络协议·http
前端小趴菜、8 小时前
Web Worker 简单使用
前端
web_learning_3218 小时前
信息收集常用指令
前端·搜索引擎
tabzzz8 小时前
Webpack 概念速通:从入门到掌握构建工具的精髓
前端·webpack
200不是二百8 小时前
Vuex详解
前端·javascript·vue.js