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

求JavaScript正则表达式:禁止字母与数字直接拼接,需用连字符分隔

JavaScript正则表达式:禁止字母与数字直接拼接,需用连字符分隔

这里提供一个符合需求的正则表达式,确保字符串中字母与数字不会直接相邻,必须通过连字符-连接:

const validPattern = /^(?:[A-Za-z]+|\d+|[^A-Za-z\d]+)(?:-(?:[A-Za-z]+|\d+|[^A-Za-z\d]+))*$/;

正则规则解释:

  • ^ 和 $:锚定字符串的开头和结尾,确保整个字符串都符合规则,避免部分匹配
  • (?:[A-Za-z]+|\d+|[^A-Za-z\d]+):定义单个合法的"段",支持三种类型:
    • [A-Za-z]+:一个或多个纯字母
    • \d+:一个或多个纯数字
    • [^A-Za-z\d]+:一个或多个非字母非数字的字符(比如示例中的***)
  • (?:-(?:[A-Za-z]+|\d+|[^A-Za-z\d]+))*:允许通过连字符连接多个合法段,*表示可以连接0个或多个后续段(即单个合法段也符合规则)

验证示例:

匹配的字符串:

  • abc-123-123-*** → 符合规则
  • 123-abc-abc-*** → 符合规则
  • 123-abc-123-*** → 符合规则
  • abc-123-abc-*** → 符合规则
  • abc-efg-*** → 符合规则

不匹配的字符串:

  • abc123 → 字母与数字直接拼接,不符合
  • 123abc → 数字与字母直接拼接,不符合
  • abc1 → 字母与数字直接拼接,不符合
  • a1b2 → 字母与数字交替直接拼接,不符合

使用方式:

在JavaScript中可以通过test()方法验证字符串是否符合规则:

// 测试匹配案例
console.log(validPattern.test('abc-123-123-***')); // 输出 true
console.log(validPattern.test('abc-efg-***')); // 输出 true

// 测试不匹配案例
console.log(validPattern.test('abc123')); // 输出 false
console.log(validPattern.test('a1b2')); // 输出 false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:35:27