蓝桥杯Web练习题:多个斜线开始的路径重定向问题
多个斜线开始的路径重定向问题
需求说明
在 vue-router v3.5.2 版本代码中存在一个 Bug,一个以多个斜线(///)开始的路径实际上可能会重定向到另一个域。这是因为 cleanPath 函数只替换了两个斜线。请修复此问题。
知识技能
修复本问题,需要具备的知识技能:
掌握 JavaScript 基础语法。
掌握正则表达式。
问题复现
请开启线上实验环境,输入下面的命令下载初始代码。
wget https://labfile.oss.aliyuncs.com/courses/5036/vue-router-01-full.zip && unzip vue-router-01-full.zip&&rm vue-router-01-full.zip
选中左侧文件树中 index.html 右键 Open with Live Server 启动 Web 服务,然后点击环境右侧工具栏中的【Web 服务】,在浏览器预览页面效果如下:

修复流程
切换到 vue-router-3.5.2 目录下。
定位 vue-router-3.5.2/src/util/path.js 文件的 cleanPath 函数,根据复现的问题进行解决。
export function cleanPath(path: string): string {
return path.replace(////g, "/");
}
copy
修复完成后,在 vue-router-3.5.2 目录下,通过 npm run build 命令重新打包发布。
图片描述
重新点击【Web 服务】,查看和测试修复后的效果。

提交代码
问题修复完成后,请点击「提交检测」,系统将会自动检测是否满足要求。
总通过次数: 285 | 总提交次数: 339 | 通过率: 84.1%
题解:
我们先从index.html中的路由跳转看,此处跳转的链接带着三个 / / /
<div id="app">
<h1>Hello App!</h1>
<p>
<!-- 重点。此处跳转的链接是三个 /// --->
<router-link to="///www.baidu.com">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
</p>
<router-view></router-view>
</div>
我们在js中将return注释,将结果 log一下,看看这个正则它干了啥
export function cleanPath (path: string): string {
const path1 = path.replace(/\/\//g, '/')
console.log(path1)
// return path.replace(/\/\//g, '/')
}
o,看到这我们就明白了,原先的三个 /// 斜线,被替换成成了两个 // ,而原先的 /bar 不会进行跳转,是因为只有一个 /。

那我们要干的事情就很明确了,将三个 /// 替换成一个 /
提交通过。
export function cleanPath (path: string): string {
const path1 = path.replace(/\/\//g, '/')
const path2 = path1.replace(/\/\//g, '/')
const path3 = path2.replace(/\/\//g, '/')
console.log(path1, path2, path3)
return path3
}
正确的写法应该是要通过正则 +号,进行贪心匹配
export function cleanPath (path: string): string {
return path.replace(/\/+/g, '/')
}
蓝桥杯Web练习题:多个斜线开始的路径重定向问题的更多相关文章
- Java蓝桥杯——递归练习题:走台阶(偶数版)
递归练习题:走台阶(偶数版) 小明刚刚看完电影<第39级台阶>.离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个 ...
- 蓝桥杯Web:【功能实现】菜单树检索
[功能实现]菜单树检索 背景介绍 实际工作中很多前端攻城狮都会遇到这样一个需求:在多级菜单树中模糊搜索匹配的菜单项,并显示出来. 本题需要在已提供的基础项目中使用 Vue.js 知识,实现对已提供的二 ...
- Java蓝桥杯——逻辑推理练习题
逻辑推理题 谁是贼? 公安人员审问四名窃贼嫌疑犯.已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎.在回答公安人员的问题中: 甲说:"乙没有偷,是丁偷的.&quo ...
- [蓝桥杯][2016年第七届真题]路径之谜(dfs)
题目描述 小明冒充X星球的骑士,进入了一个奇怪的城堡. 城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士要从西北角走到东南角. ...
- 2015年第六届蓝桥杯C/C++B组省赛题目解析
一.奖券数目 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利.虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是5位数(10000-99999),要求其中 ...
- 2015第六届蓝桥杯C/C++ B组
奖券数目:枚举 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利.虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是5位数(10000-99999),要求其 ...
- 算法笔记_206:第五届蓝桥杯软件类决赛真题(Java语言A组)
目录 1 海盗分金币 2 六角幻方 3 格子放鸡蛋 4 排列序数 5 幂一矩阵 6 供水设施 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 海盗分金币 有5个海盗,相约进行一次帆船比赛. 比 ...
- 2012年 蓝桥杯预赛 java 本科 题目
2012年 蓝桥杯预赛 java 本科 考生须知: l 考试时间为4小时. l 参赛选手切勿修改机器自动生成的[考生文件夹]的名称或删除任何自动生成的文件或目录,否则会干扰考试系统正确采集您的解答 ...
- 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
随机推荐
- TCP(三)
1.三次握手 置位概念:根据TCP的包头字段,存在3个重要的标识ACK.SYN.FIN ACK:表示验证字段 SYN:位数置1,表示建立TCP连接 FIN:位数置1,表示断开TCP连接 三次握手过程说 ...
- vulnhub mrRobot渗透笔记
mrRobot渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/mr-robot-1,151/ kali ip 信息收集 首先依旧时使用nmap扫描靶机的ip地址 n ...
- 【STM32】MDK中寄存器地址名称映射分析
对于MCU,一切底层配置,最终都是在配置寄存器 51单片机访问地址 51单片机经常会引用一个reg51.h的头文件.下面看看它是怎么把名字和寄存器联系在一起的: 1 sfr p0=0x80; 2 p0 ...
- AD中PCB各层的含义
PCB的各层定义及描述: 1. Top Layer(顶层布线层):设计为顶层铜箔走线.如为单面板则没有该层. 2. Bottom Layer(底层布线层):设计为底层铜箔走线. 3. Top/Bott ...
- WPF控件大全(表格)-学习总结
Label标签 label控件:一般用户描述性文字显示. 在Label控件使用时,一般给予用户提示.用法上没有什么很特殊的,label控件的值记住:不是Text 而是 Content属性. TextB ...
- 【Android开发】【第三方SDK】蒲公英摇一摇
摇一摇用户信息反馈功能:用户通过摇晃手机或者触发按钮,弹出反馈信息界面,填写个人意见,上传服务器的功能. 1. 蒲公英官网注册应用,获取AppId作为唯一标识: 2. 下载sdk,获取pgyer_sd ...
- 微信h5支付/jsapi支付/小程序支付
一. 介绍------------------------------------------------------------------ 微信支付官方开发文档: https://pay.wei ...
- datetimepicker 设置日期格式、初始化
$('#datetimepicker').datetimepicker({ minView: "month", //选择日期后,不会再跳转去选择时分秒 language: 'zh- ...
- CSS3中有哪些新特性
新增各种CSS选择器 (: not(.input):所有 class 不是"input"的节点) 圆角 (border-radius:8px) 多列布局 (multi-column ...
- 自学java如何快速地达到工作的要求?
自学java如何快速地达到工作的要求,是很多初学者都比较关心的问题,对于初学者来说,盲目自学不但不能快速入门,还会浪费大量的时间. 今天知了堂就来分享自学Java如何快速达到找工作的要求. 1.自学J ...