X(原Twitter)链接验证正则表达式适配修复方案咨询
修复正则匹配x.com域名的问题
问题根源
原正则里的域名主体部分([-a-zA-Z0-9@:%._\+~#=]{2,256})要求至少2个字符,而x.com的域名主体是x,仅1个字符,因此无法匹配;你添加的^x$规则只能匹配单独的字符x,无法覆盖x.com类链接。
修复后的正则代码
将域名主体的长度限制从{2,256}改为{1,256},同时保留单独匹配x的规则(若有需求):
const linkPattern = /^(http(s)?:\/\/)[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$|^x$/;
核心修改说明
- 调整域名主体的长度约束为
{1,256},允许单个字符的域名主体(比如x.com里的x) - 保留原有的单独匹配
x的规则,满足你对单个字符x的匹配需求
修改后即可正常匹配twitter.com、x.com这类域名的URL,同时也能匹配单独的字符x。
内容的提问来源于stack exchange,提问作者geo
相关产品推荐
相关产品推荐

