【问题标题】:Regular expression to only allow letters and space in input filed but the first character should not be space正则表达式只允许输入字段中的字母和空格,但第一个字符不应该是空格
【发布时间】:2019-01-04 12:32:44
【问题描述】:

正则表达式的新手。我正在验证输入文件。我需要编写正则表达式来检查以下内容: 只允许字母和空格,不允许数字和特殊字符 第一个字符应该是有效的字母 [a-zA-Z] 而不是空格。 谢谢

【问题讨论】:

  • 欢迎来到 Stack Overflow!请使用tour(您将获得徽章!)并通读help center,尤其是How do I ask a good question? 您最好的选择是进行研究,search 以获取有关 SO 的相关主题,然后试一试. 如果您在进行更多研究和搜索后遇到困难并且无法摆脱困境,请发布您的尝试minimal reproducible example,并具体说明您遇到的问题。人们会很乐意提供帮助。
  • 您可能会发现the answer to this question 很有用。如果您有任何给您带来麻烦的具体问题,请发布详细信息,我很乐意为您提供帮助。
  • 谢谢蒂姆,但该链接没有帮助
  • 或许^[A-Za-z][A-Za-z ]*$

标签: javascript regex


【解决方案1】:

以下正则表达式只接受您想要的字母或空格。

^(?! )[A-Za-z\s]*$

快速解释:

^ 匹配输入的开头

(?! ) 零宽度负前瞻断言,又名“后面没有...”,所以第一个字母不会是空格字符

[A-Za-z\s]* 任何时候都只接受字母 (A-Za-z) 和空格 (\s) (*)

$匹配输入结束

编辑:如果您不想匹配空字符串,则需要接受至少一个字符而不是任何字符:^(?! )[A-Za-z\s]+$

【讨论】:

  • The first character should be a valid letter [a-zA-Z] not a space,你的正则表达式也会匹配一个空字符串。
  • @Thefourthbird (?!) 表示第一个字符不能是空格。另外,如果你不想匹配一个空字符串,你可以将 * 更改为 +,这样它至少会有一个字母,但原发帖人并没有要求这个。
猜你喜欢
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
相关资源
最近更新 更多