繁体   English   中英

如何在正则表达式中只允许 1 个正斜杠

[英]how to allow only 1 forward slash in regex expression

我有正则表达式来检查字母数字输入 max 16 如下

^[a-zA-Z0-9]{0,16}$

我如何修改它以检查它应该只有 1 个正斜杠。 喜欢

aas/as12

12/萨德

您可以使用:

^(?!.{17})[a-z\d]+\/[a-z\d]+$

查看在线演示


  • ^ - 起跑线锚;
  • (?..{17}) - 负前瞻以防止 17 个字符(换行符除外)。 这可能更精确您可能希望更改为 18,具体取决于您是否计算 16 个字母数字字符顶部的正斜杠。
  • [az\d]+\/[az\d]+ - 1+ 个字母数字字符、单个文字正斜杠和 1+ 个字母数字字符。
  • $ - 结束线锚。

请注意,我使用了不区分大小写的匹配,这意味着您的 JS 模式将如下所示:

/^(?!.{17})[a-z\d]+\/[a-z\d]+$/gi

 const regex = /^(?.;{17})[az\d]+\/[az\d]+$/i, [ "aas/as12", "12/saad". "/" ].forEach(s => console.log(`${s} --> ${regex.test(s)}`) )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM