如何从URL提取数字目录并设置默认值及路径验证?
解决方案
没问题,我来帮你实现这个需求!咱们一步步拆解,搞定路径提取和验证的逻辑:
步骤1:获取并处理路径名
首先用window.location.pathname拿到完整路径,比如对于http://test.example.com/12345/,得到的是"/12345/"。接下来我们需要去掉首尾的斜杠,提取中间的有效部分:
- 用
split('/')把路径按斜杠分割,得到数组["", "12345", ""] - 过滤掉数组里的空字符串,拿到有效内容
["12345"] - 取数组的第一个元素,就是我们要的目标字符串
步骤2:验证是否为纯数字
拿到提取后的字符串后,需要验证它是不是纯数字:
- 用正则表达式
/^\d+$/来匹配,确保字符串全是数字(避免123abc这种混合字符的情况) - 或者用
Number.isInteger(Number(extractedStr)),把字符串转成数字后判断是否为整数
完整代码示例
// 获取当前页面的路径名 const pathname = window.location.pathname; // 分割路径并过滤掉空字符串 const pathParts = pathname.split('/').filter(part => part.trim() !== ''); // 默认设置为11111 let targetNumber = '11111'; // 判断是否有有效路径段,且该段是纯数字 if (pathParts.length > 0 && /^\d+$/.test(pathParts[0])) { targetNumber = pathParts[0]; } // 测试输出结果 console.log(targetNumber);
场景覆盖说明
- 当路径是
http://test.example.com/12345/时,targetNumber会被赋值为"12345" - 当路径是
http://test.example.com/(无目录)或http://test.example.com/abc/(目录非数字)时,targetNumber保持默认的"11111"
内容的提问来源于stack exchange,提问作者Chase
相关产品推荐
相关产品推荐

