这是我的正则表达式
/^[a-zA-Z0-9-]{40}([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}){2,10}$/
将有一个条件:前40个字符后的每个字符串的长度必须为16个字符。这16个字符的字符串将不重复,最少2次,最多10次。所以我想得到这个子串的长度应该是16。
这是输入字符串:
string input="PR212D4EB2-6B25-4020-BD2A-941F69C0AA4102GEX2421262506027GEX2437345435522"
我希望匹配“GEX2421262506027”和“GEX2437345435522”的长度。像这样,最多会有10个字符串。我想验证这个长度是否应该是16个字符。
答案 0 :(得分:1)
试试这个
var pattern = /^[a-zA-Z0-9-]{40}([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}){2,10}$/;
var exp = text.match(pattern);
if (exp) {
alert(exp[0].length);
}
答案 1 :(得分:0)
如果您只想要最后16个字符:
var string = 'PR212D4EB2-6B25-4020-BD2A-941F69C0AA4102GEX2421262506027GEX2437345435522';
var matching = string.match(/^[a-zA-Z0-9-]{40}([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}){2,10}$/);
console.log(matching[1]);
console.log(matching[1].length);