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

如何在JavaScript中使用Regex验证符合指定格式的字符串?

JavaScript Regex to Validate Semicolon-Separated Options String

没问题,我帮你搞定这个正则表达式!先把你的验证需求拆解清楚,这样你也能明白每个正则部分的作用:

  • 字符串必须包含至少一个;(也就是至少有2个选项)
  • 字符串不能以;开头、结尾,也不能出现连续的;;
  • 每个选项长度至少3个字符
  • 选项首尾不能有空格,但内部可以包含空格
  • 选项里绝对不能包含;

最终正则表达式

const validationRegex = /^(?!;)(?!.*;;)(?!.*;$)(?:\S[^;]{1,}\S)(?:;\S[^;]{1,}\S)+$/;

正则各部分解释

让我拆解开每个部分,帮你理解:

  • ^:匹配字符串的起始位置,确保我们从开头就开始验证
  • (?!;):负向前瞻,确保字符串不是以;开头
  • (?!.*;;):另一个负向前瞻,检查整个字符串里有没有连续的两个;
  • (?!.*;$):负向前瞻,确保字符串不是以;结尾
  • (?:\S[^;]{1,}\S):匹配第一个有效选项:
    • \S:强制选项开头必须是非空格字符
    • [^;]{1,}:匹配至少1个非;的字符(可以包含空格)
    • \S:强制选项结尾必须是非空格字符
    • 整个组合确保选项长度至少3,首尾无空格,且不含;
  • (?:;\S[^;]{1,}\S)+:匹配一个或多个后续选项,每个选项前必须有一个;,然后是符合要求的选项内容
  • $:匹配字符串的结束位置,确保整个字符串都符合规则

使用示例

把它封装成一个验证函数,测试你的所有示例:

const isValidOptions = (str) => {
  const regex = /^(?!;)(?!.*;;)(?!.*;$)(?:\S[^;]{1,}\S)(?:;\S[^;]{1,}\S)+$/;
  return regex.test(str);
};

// 测试你的示例
console.log(isValidOptions("aaa;BBC;ccc")); // true ✅ valid
console.log(isValidOptions(";aaa;bbb;ccc")); // false ❌ invalid (starts with ;)
console.log(isValidOptions("aaa;bbb;ccc;")); // false ❌ invalid (ends with ;)
console.log(isValidOptions("aaa;bbb;ccc;ddd")); // true ✅ valid
console.log(isValidOptions("aaa;b;ccc")); // false ❌ invalid (option length <3)
console.log(isValidOptions("aaa;bbb;;ccc")); // false ❌ invalid (consecutive ;;)
console.log(isValidOptions("aa a;bbb;ccc")); // true ✅ valid (internal space)
console.log(isValidOptions("aaa ;bbb;ccc")); // false ❌ invalid (trailing space in option)
console.log(isValidOptions(" aaa;bbb;ccc")); // false ❌ invalid (leading space in option)
console.log(isValidOptions("aaa;bb b;ccc;ddd")); // true ✅ valid (internal space)
console.log(isValidOptions("aaa;bbb ;ccc;ddd")); // false ❌ invalid (trailing space in option)
console.log(isValidOptions("aaa;bbb")); // true ✅ valid (two valid options)

这个函数会准确返回每个示例的验证结果,完全符合你的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:56:04