0

这是我的正则表达式

/^[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 个字符。

4

2 回答 2

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);
  }
于 2013-08-07T11:59:45.847 回答
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);
于 2013-08-07T17:50:25.513 回答