这是我的正则表达式的格式:
@"^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)
演示小提琴在这里(检查底部)。