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

如何编写正则表达式验证符合str-str-str格式的字符串?

正确的正则表达式方案

需求明确

要验证的字符串需满足:

  • 仅由小写字母(a-z)和单个连字符(-)组成
  • 不能以连字符开头或结尾
  • 禁止连续连字符、数字、空格及其他符号
  • 支持单个小写字母(如"a")或合法连字符分隔的组合(如"home-appliances")

原有正则的问题

你之前使用的/^[a-z][a-z-]+[a-z]$/存在两个关键缺陷:

  1. 强制字符串长度至少为3,无法匹配单个小写字母(比如"a")
  2. 中间的[a-z-]+允许连续连字符,像"a--b"这类非法字符串会被错误通过

正确的正则表达式

^[a-z]+(?:-[a-z]+)*$

规则拆解

  • ^:匹配字符串起始位置
  • [a-z]+:匹配至少一个小写字母,既保证开头是字母,也支持单个字母的合法场景
  • (?:-[a-z]+)*:非捕获组,匹配零次或多次「连字符+至少一个小写字母」的组合:
    • -[a-z]+确保连字符后必须跟字母,避免出现结尾连字符的情况
    • *表示可以没有连字符(对应单个单词),也可以有多个合法的连字符分隔(比如"home-kitchen-appliances")
  • $:匹配字符串结束位置

验证效果

✅ 合法匹配:"a"、"string"、"home-appliances"、"user-name-test"
❌ 非法拦截:"-test"、"test-"、"test--test"、"test123"、"test test"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:20:54