Javascript 正则表达式最多提供2个空格

Javascript 正则表达式最多提供2个空格,javascript,regex,Javascript,Regex,我必须用JavaScript编写一个正则表达式,它将满足以下条件 a) accept only alphabetic characters(small/caps) b) should not exceed beyond 20 characters c) max 2 spaces can be provided. 有效的测试用例 我的尝试(但不起作用) 什么是错误以及如何修复?正则表达式将匹配一到二十个字母和/或空格一次或多次。所以,基本上这允许字母表和空格以任意顺序任意次数出现 你可以用

我必须用JavaScript编写一个正则表达式,它将满足以下条件

a) accept only alphabetic characters(small/caps)
b) should not exceed beyond 20 characters 
c) max 2 spaces can be provided.
有效的测试用例 我的尝试(但不起作用)

什么是错误以及如何修复?

正则表达式将匹配一到二十个字母和/或空格一次或多次。所以,基本上这允许字母表和空格以任意顺序任意次数出现


你可以用

^[a-zA-Z]+(\s[a-zA-Z]*){0,2}$

var regex=/^[a-zA-Z]+(\s[a-zA-Z]*){0,2}$/;
var result=document.getElementById('result');
document.getElementById('text')。addEventListener('keyup',函数(e){
var值=此值;
var isValid=value.length正则表达式将匹配一到二十个字母和/或空格一次或多次。因此,基本上这允许字母和空格以任意顺序多次匹配


你可以用

^[a-zA-Z]+(\s[a-zA-Z]*){0,2}$

var regex=/^[a-zA-Z]+(\s[a-zA-Z]*){0,2}$/;
var result=document.getElementById('result');
document.getElementById('text')。addEventListener('keyup',函数(e){
var值=此值;

var isValid=value.length您可以检查输入是否只包含字母,最多包含两个内部空格,如下所示:

/^[a-z]+ ?[a-z]* ?[a-z]+$/i
换句话说,从开头开始,匹配一个或多个字母的序列,然后可能是一个空格,然后可能是一堆空字母,然后可能是一个空格,最后是一个或多个字母的序列,将你带到结尾

要检查长度,无需使用JS进行检查,请添加前瞻:

/^(?=.{1,20}$)[a-z]+ ?[a-z]* ?[a-z]+$/i
  ^^^^^^^^^^^^   LOOK-AHEAD TO LIMIT CHARS TO 20

这表示,“向前看,找到字符串末尾的一到二十个字符。”

您可以检查输入是否只包含字母,最多包含两个内部空格,如下所示:

/^[a-z]+ ?[a-z]* ?[a-z]+$/i
换句话说,从开头开始,匹配一个或多个字母的序列,然后可能是一个空格,然后可能是一堆空字母,然后可能是一个空格,最后是一个或多个字母的序列,将你带到结尾

要检查长度,无需使用JS进行检查,请添加前瞻:

/^(?=.{1,20}$)[a-z]+ ?[a-z]* ?[a-z]+$/i
  ^^^^^^^^^^^^   LOOK-AHEAD TO LIMIT CHARS TO 20


这表示,“向前看,在字符串末尾找到一到二十个字符。”

两个连续的空格怎么样?是的……它也可以有效,因为a b也是有效的……只是错过了这一点(:什么是不应该超过20个字符,总字符串长度或每个单词长度?只允许两个连续的空格?@Tushar,总字符串长度大约两个连续的空格?是的…它也可以有效,因为a b也是有效的…只是错过了这一点(:什么是不应该超过20个字符,总字符串长度或每个单词长度?只允许两个连续的空格?@Tushar,总字符串长度这是20个字符的限制?但您可能可以将其用作第一或第二阶段。感谢更新。:D好的,我想他指的是20个字符的总限制。您知道这也可能以某种方式包含在单个正则表达式中?@MatthiasW。这对于正则表达式来说很棘手,但可以使用JS
.length
。@Tushar,字符串总长度不应超过20@priyanka.sarkar但请记住,您可能需要再次在服务器端检查输入的正确格式。;)20个字符的限制在哪里?但你可能会将其用作第一或第二阶段。感谢更新。:D好的,我想他甚至指的是20个字符的总限制。你知道这是否也可以包含在单个正则表达式中吗?@MatthiasW。这对正则表达式来说很棘手,但可以使用JS
。length
。@Tushar,total st环的长度不应超过20@priyanka.sarkar但请记住,您可能需要再次在服务器端检查输入的正确格式。;)