Javascript 仅匹配字母表的正则表达式不适用于空格
我目前使用这个正则表达式(/^[A-z]+$/)只允许用户输入字母表。但我面临的一个问题是,它不允许字符之间有空格。为什么会这样?如何解决这个问题 多谢各位 但我面临的一个问题是,它不允许 人物。为什么会这样?如何解决这个问题 正则表达式有Javascript 仅匹配字母表的正则表达式不适用于空格,javascript,regex,validation,Javascript,Regex,Validation,我目前使用这个正则表达式(/^[A-z]+$/)只允许用户输入字母表。但我面临的一个问题是,它不允许字符之间有空格。为什么会这样?如何解决这个问题 多谢各位 但我面临的一个问题是,它不允许 人物。为什么会这样?如何解决这个问题 正则表达式有^和$标记输入的开始和结束,这意味着整个输入必须匹配[A-z]+ 您还需要容纳空间,所以请尝试 /^[A-Z]+(([A-Z\s]*[A-Z])*)$/i 解释 [A-Z]+确保它总是以字母开头 (([A-Z\s]*[A-Z])*)确保如果单词之间有空格,
^
和$
标记输入的开始和结束,这意味着整个输入必须匹配[A-z]+
您还需要容纳空间,所以请尝试
/^[A-Z]+(([A-Z\s]*[A-Z])*)$/i
解释
确保它总是以字母开头[A-Z]+
确保如果单词之间有空格,它也以字母结尾(([A-Z\s]*[A-Z])*)
- 从正则表达式中删除
和^
$
而不是[A-Z]
[A-Z]
- 使其不区分大小写
[A-z]
你确定你明白这允许什么吗?试试/^[A-z]$/i
。请注意,z
后面有一个空格。另请注意/i
。这使得check不区分大小写。您可以使用regex101.com测试/理解regex。vs\s
允许的不仅仅是空间:pAhh。谢谢你的简明解释。我有两个问题要问你的正则表达式。1.为什么在[A-Z]后面加+号?2.我知道星号意味着一个字符可以重复多次,为什么你把第一个星号放在[a-Z\s]和[a-Z]之间,而不是像第二个星号一样放在括号外。这样你的句子总是以字母表而不是空格结尾。
/[A-Z]+/i