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

求兼容Safari的JS正则:禁止连续斜杠及指定外特殊字符

兼容Safari的JS正则表达式解决方案

需求说明

需要一个JavaScript正则表达式,满足以下判定规则(符合则返回true,否则返回false):

  • 字符串不能包含两个连续的正斜杠
  • 字符串只能包含字母、数字、连字符(-)、下划线(_)和单个正斜杠,禁止其他特殊字符
  • 必须兼容Safari浏览器(不得使用负向后行断言(?<!...),Safari不支持该语法)

此前尝试的正则/(^[\w-\/]+$)(?<!.*?\/{2,}.*$)/逻辑正确,但因依赖负向后行断言无法在Safari中运行。

解决方案

使用负向前瞻断言替代负向后行断言,实现兼容所有主流浏览器(包括Safari)的正则:

const validPattern = /^(?!.*\/\/)[\w\/-]+$/;

正则解析

  • ^:锚定字符串起始位置
  • (?!.*\/\/):负向前瞻,检查整个字符串中不存在连续的两个斜杠(.*匹配任意字符,\/\/匹配连续双斜杠)
  • [\w\/-]+:匹配允许的字符集合:
    • \w:等价于[A-Za-z0-9_],包含字母、数字、下划线
    • \/:单个正斜杠
    • -:连字符
  • $:锚定字符串结束位置

验证示例

匹配成功(返回true)的字符串:

  • asc/_bsj
  • acs-h-
  • acs
  • acs/bgt

匹配失败(返回false)的字符串:

  • acs//(包含连续双斜杠)
  • acs/@(包含非法特殊字符@)
  • acs@(包含非法特殊字符@)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:50:22