Javascript正则表达式仅用于验证";用逗号分隔的句子;

Javascript正则表达式仅用于验证";用逗号分隔的句子;,javascript,regex,Javascript,Regex,我需要在javascript中验证这个字符串 第二个参数的可用性仅限于R1、R2、R3、R4 第二个和第三个参数只能用逗号分隔,而第一个和第二个参数用空格分隔 req R1,1 //valid req R2,3 //valid req R0,1 //invalid req R1 1 //invalid 我写过这样的话: /^req\sR1|R2|R3|R4[^,][0-9]+$/ 但它在少数情况下失败: req R3 1 //supposed to be invalid, valid usi

我需要在javascript中验证这个字符串

第二个参数的可用性仅限于R1、R2、R3、R4 第二个和第三个参数只能用逗号分隔,而第一个和第二个参数用空格分隔

req R1,1 //valid
req R2,3 //valid
req R0,1 //invalid
req R1 1 //invalid
我写过这样的话:

/^req\sR1|R2|R3|R4[^,][0-9]+$/
但它在少数情况下失败:

req R3 1 //supposed to be invalid, valid using above regex
req R3.1 //supposed to be invalid, valid using above regex

删除被求反的字符类和此
R1 | R2 | R3 | R4
<代码>R1 | R2 | R3 | R4不会做你需要的事情。您需要将其放入非捕获组或捕获组以使其正常工作。像这样
^req(?:R1 | R2 | R3 | R4),\d+$
您可以像下面这样缩短这个正则表达式

^req R[1-4],\d+$

\s
匹配新行-boom。如果我使用``有人会来问你为什么不使用空格字符
\s
,谢谢!从来没有意识到你能做到这么简单。