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

Next.js中如何编写正则校验URL字符串是否含至少3个/字符

可用正则表达式及使用说明

最终正则

/^(?:[a-zA-Z0-9-]*\/){3,}[a-zA-Z0-9-]*$/

规则说明

  • ^ 匹配字符串起始位置,避免前缀出现非法字符
  • (?:[a-zA-Z0-9-]*\/) 非捕获组,匹配任意数量的合法非斜杠字符(大小写字母、数字、连字符)加一个斜杠
  • {3,} 限定上述组至少出现3次,即整个字符串至少包含3个斜杠,且斜杠不需要连续
  • [a-zA-Z0-9-]* 匹配最后一个斜杠之后剩余的合法字符
  • $ 匹配字符串结束位置,避免后缀出现非法字符

Next.js 中使用示例

// 路径校验函数
const isValidCustomPath = (pathStr) => {
  const pathReg = /^(?:[a-zA-Z0-9-]*\/){3,}[a-zA-Z0-9-]*$/
  return pathReg.test(pathStr)
}

// 测试用例
console.log(isValidCustomPath("/apple/green-sour/south-spain")) // true
console.log(isValidCustomPath("/red-orange/sweet/north-italy-toscany")) // true
console.log(isValidCustomPath("/kiwi/new-zealan")) // false 仅2个斜杠
console.log(isValidCustomPath("/fruit/apple@2x/red/sweet")) // false 含非法字符@

常见误区说明

你之前整理的[/]{3}规则只能匹配连续出现的3个斜杠(比如///test),不符合需求中斜杠分散出现的场景,因此需要用分组重复的方式统计斜杠总数量。

内容的提问来源于stack exchange,提问作者Ives E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:57:03