我需要在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
答案 0 :(得分:2)
删除否定的字符类和此R1|R2|R3|R4
。 R1|R2|R3|R4
不会做你需要的事情。您需要将其放入非捕获组或捕获组以使其工作。像这样^req (?:R1|R2|R3|R4),\d+$
你可以缩短这个正则表达式,如下面的
^req R[1-4],\d+$