正则表达式:只允许字母和单个空格,并且必须以字母开头,并且长度必须至少为 3

以下示例是我试图实现的结果:


99Hello -> invalid(starts with numbers)

He  llo -> invalid(has two spaces)

He -> invalid(minimum length 3)

He llo -> valid

He l l o -> valid

Hel -> valid

这是我尝试过的:


[a-zA-Z][a-zA-Z ]{3,}


慕丝7291255
浏览 188回答 2
2回答

波斯汪

您可以根据需要使用此正则表达式:/^(?!.*  )[a-z][a-z ]{2,}/i它对字符串中某处相邻的 2 个空格进行负前瞻,然后尝试匹配一个字母后跟 2 个或更多字母和/或空格。let t = ['99Hello','He  llo','He','He llo','He l l o','Hel'];console.log(t.filter(v => /^(?!.*  )[a-z][a-z ]{2,}/i.test(v)));

有只小跳蛙

这是你想要的:^[a-zA-Z]((?! {2})[a-zA-z ]){2,}$开始和结束分隔符很重要。如果它至少是三个,则需要将要查找的数字设置为 2 以考虑后一组中未计算的第一个字符。它还使用负前瞻,这是什么?!是。这意味着如果它发现 ?! 在匹配中它不被视为有效匹配。我使用'{2}' 来表明我正在寻找两个空格,因为'' 可能会模棱两可。如果您还没有,有很多在线资源可以让您测试您的正则表达式,以及能够查找语法。我个人使用https://regex101.com/。
打开App,查看更多内容
随时随地看视频慕课网APP