MVC中使用JavaScript的正则表达式

MVC中使用JavaScript的正则表达式,javascript,Javascript,下面是我的正则表达式的格式: “^PR[a-zA-Z0-9-]{36}[0-9]{2}([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}{2,10}$” 每种情况都应该有单独的验证。因此,我使用JavaScript子字符串成功实现了前三个条件。只是在最后一种情况下卡住了,即 “([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}){2,10}” 在这里,我想检查每四个字符必须是“2” 如何通过JavaScript实现这一点?如果您拥有完整的正则表达式,为什么不将其作

下面是我的正则表达式的格式:

“^PR[a-zA-Z0-9-]{36}[0-9]{2}([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}{2,10}$”

每种情况都应该有单独的验证。因此,我使用JavaScript子字符串成功实现了前三个条件。只是在最后一种情况下卡住了,即

“([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}){2,10}”

在这里,我想检查每四个字符必须是“2”


如何通过JavaScript实现这一点?

如果您拥有完整的正则表达式,为什么不将其作为一个整体使用:

var regex = /^PR[a-zA-Z0-9-]{36}[0-9]{2}([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}){2,10}$/;
var str = "PR12345678901234567890123456789012345600AAA2BBBCCCDDDEEEaaa2bbbcccdddeee";
console.log(regex.test(str)); // true
但如果你真的要打破它,你可以:

var regex1 = /^PR[a-zA-Z0-9-]{36}$/;
console.log(regex1.test(str.substring(0,38))); // true

var regex2 = /^[0-9]{2}$/;
console.log(regex2.test(str.substring(38,40))); // true

var regex3 = /^([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}){2,10}$/;
console.log(regex3.test(str.substring(40,str.length))); // true

编辑: 要检查每四个字符是否必须为两个,请使用:

var regexfourth = /^([a-zA-Z0-9-]{3}2)+$/;
console.log(regexfourth.test("aaa2bbb2ccc2ddd2")); // true
console.log(regexfourth.test("aaa2bbb2ccc3ddd2")); // false(notice a 3 after ccc)

(勾选底部)。

您应该为每个条件编写单独的正则表达式,拆分较大的正则表达式不能保证结果正确。此外,您的正则表达式似乎是用C#或JavaScript以外的其他语言编写的。
(testString.match(/^(.{3}2)*$/)!=null)
将确认
testString
中的每四个字符是否为
2
,但我不确定这是否正是您所要求的……如何检查每四个字符是否必须是2 in([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}{2,10}?我添加了一个正则表达式示例,可以检查每四个字符。检查这是否是您需要的。如果没有,你能举更多的例子吗?一些示例输入及其预期结果(假/真)。。。