0

ここに私の正規表現があります

/^[a-zA-Z0-9-]{40}([a-zA-Z0-9-]{3}2[a-zA-Z0-9-]{12}){2,10}$/

1 つの条件があります。最初の 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 に答える