You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JS正则匹配URL第一个正斜杠后包含指定单词bacon

正则实现URL路径bacon检测方案

需求说明

通过正则实现URL校验逻辑:检测URL字符串里第一个/之后的路径内容中是否存在子串bacon,第一个/之前的域名等内容即使包含bacon也不做统计。

测试用例标准

应返回true的场景

console.log('1 - ', myRegexFunction('www.bacondelivery.com/weekly-bacon-delivery/'));
console.log('2 - ', myRegexFunction('www.bacondelivery.com/daily-bacon-delivery/'));
console.log('3 - ', myRegexFunction('www.bacondelivery.com/bacon-of-the-month-club/'));

应返回false的场景

console.log('4 - ', myRegexFunction('www.bacondelivery.com/'));
console.log('5 - ', myRegexFunction('www.bacondelivery.com/?some_param'));
console.log('6 - ', myRegexFunction('www.bacondelivery.com/about/'));
console.log('7 - ', myRegexFunction('www.bacondelivery.com/contact-us/'));

原有代码问题

原有正则^([a-z0-9]{5,})$逻辑完全不匹配需求:

  • 仅支持匹配全由小写字母、数字组成且长度不小于5位的字符串,无法识别URL里的.、/、-等特殊字符
  • 没有针对目标关键词bacon的匹配规则,完全没覆盖路径检测逻辑

正确实现方案

正则设计思路

  1. 优先匹配字符串中第一个出现的/,确保后续检测范围完全在第一个斜杠之后,自动跳过域名部分的bacon干扰
  2. 匹配/后的任意内容,查找是否存在bacon子串

可直接运行的代码

function myRegexFunction(url) {
  // 如果需要忽略bacon的大小写匹配,可将正则改为 /\/.*bacon/i
  const regex = /\/.*bacon/;
  return regex.test(url);
}

逻辑验证说明

  • 所有要求返回true的用例:第一个/后的路径段都包含bacon子串,可被正则正常命中
  • 所有要求返回false的用例:要么第一个/后无有效路径内容,要么/后的内容(含查询参数)不存在bacon子串,正则匹配失败
  • 传入不带/的纯域名字符串时,正则找不到斜杠会直接返回false,符合逻辑(不存在路径段自然不可能有路径内的bacon)

内容的提问来源于stack exchange,提问作者Marc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:24:41