为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕丝7291255 2022-10-09 17:42:21
以下示例是我试图实现的结果:99Hello -> invalid(starts with numbers)He  llo -> invalid(has two spaces)He -> invalid(minimum length 3)He llo -> validHe l l o -> validHel -> valid这是我尝试过的:[a-zA-Z][a-zA-Z ]{3,}
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您可以根据需要使用此正则表达式:


/^(?!.*  )[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)));


查看完整回答
反对 回复 2022-10-09
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

这是你想要的:

^[a-zA-Z]((?! {2})[a-zA-z ]){2,}$

开始和结束分隔符很重要。如果它至少是三个,则需要将要查找的数字设置为 2 以考虑后一组中未计算的第一个字符。

它还使用负前瞻,这是什么?!是。这意味着如果它发现 ?! 在匹配中它不被视为有效匹配。

我使用'{2}' 来表明我正在寻找两个空格,因为'' 可能会模棱两可。

如果您还没有,有很多在线资源可以让您测试您的正则表达式,以及能够查找语法。我个人使用https://regex101.com/


查看完整回答
反对 回复 2022-10-09
  • 2 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信