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

如何编写类LinkedIn格式的全名正则匹配验证表达式?

类LinkedIn全名正则验证解决方案

问题分析

你之前的正则/^[a-zA-Z]+([a-zA-Z\s.-]*[a-zA-Z]+)*(\.\s*[a-zA-Z]*)?$/存在漏洞:其中的[a-zA-Z\s.-]*允许连续的非字母字符(比如多个点、连字符),因此会匹配像John..Doe.这类不符合规则的案例。

符合要求的正则表达式

根据你列出的6条规则,修正后的正则如下:

/^[a-zA-Z]+(?:(?: [a-zA-Z]+)|(?:[.-][a-zA-Z]+))*\.?$/

正则各部分解释

  • ^[a-zA-Z]+:强制字符串以至少一个字母开头,满足规则1、3;
  • (?: ... )*:非捕获重复组,处理中间的分隔符+字母序列,确保分隔符仅出现在字母之间且不连续:
    • (?: [a-zA-Z]+):匹配空格后跟至少一个字母,严格遵守规则6(空格后不能有点号/连字符);
    • (?:[.-][a-zA-Z]+):匹配点号或连字符后跟至少一个字母,满足规则4;
  • \.?:允许字符串以单个点号结尾,符合规则5;
  • $:匹配字符串末尾,避免多余字符。

验证结果

有效示例全部匹配:

  • John. Doe.
  • Jane John Doe
  • Jane John Doe.
  • Jane John.Doe
  • Jane John-Doe
  • Jane John-Doe.

无效示例全部不匹配:

  • .John
  • John-
  • John .Doe
  • John -Doe
  • John--Doe
  • John..Doe
  • John.-Doe

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:05:17