Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅匹配字母表的正则表达式不适用于空格_Javascript_Regex_Validation - Fatal编程技术网

Javascript 仅匹配字母表的正则表达式不适用于空格

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]+(([A-Z\s]*[A-Z])*)$/i
解释

  • [A-Z]+
    确保它总是以字母开头
  • (([A-Z\s]*[A-Z])*)
    确保如果单词之间有空格,它也以字母结尾
另一方面,如果你只是想用字母表捕捉句子中所有不同的单词,那么

  • 从正则表达式中删除
    ^
    $
  • [A-Z]
    而不是
    [A-Z]
  • 使其不区分大小写
i、 e


[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