繁体   English   中英

使用JavaScript的MVC中的正则表达式

[英]Regular expression in MVC using 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)

演示在这里摆弄 (检查底部)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM