我想在列表中的每个逗号后都需要一个空格。我已经知道了,它对我的5到7位数字(以逗号分隔)的列表非常有效。
<Route path="/login" exact component={LoginContainer} />
问题是它允许12345,12345。我不想这样。 12345、12345应该通过。我也只需要12345即可通过,因此如果只是一个5-7位数字,则不需要逗号和空格。
答案 0 :(得分:0)
我不了解您的正则表达式,但可以使用以下简单的方法:
^(?:\d{5,7}, )*\d{5,7}$
或者,如果您不打算只允许数字输入,
^(?:[^, ]{5,7}, )*[^, ]{5,7}$
答案 1 :(得分:0)
您的正则表达式与12345,12345
不匹配,因为这部分([^,]{5,7},)*
从一开始就匹配,包括逗号。
然后,它不匹配将与第二个[^,]
匹配的逗号1
,然后它必须不匹配空格[^ ]{5,7}
,但是只剩下4个字符,{ {1}},并且无法匹配。
如果第一部分失败,它将尝试匹配2345
,该匹配项总共匹配6-8个字符。
您可以使用:
[^,][^ ]{5,7}
^[^,\s]{5,7}(?:, [^,\s]{5,7})*$
字符串的开头^
不能将逗号的空白字符匹配5到7次[^,\s]{5,7}
非捕获组
(?:
匹配逗号,空格,而不是逗号或空格字符5-7次, [^,\s]{5,7}
关闭非捕获组并重复0次以上)*
字符串的结尾