-1

この文字列が欲しい:

378282246310005

正規表現を使用して、4 文字のグループを返し、次の 6 文字、次の 5 文字を返したいとします。次のように:

3782 822463 10005

編集

部分一致も必要なので、この文字列は次のとおりです。

378戻ります378

37822822戻ります3782 822

4

3 に答える 3

4

部分一致の要件に関しては、探している正規表現は次のようになるはずです。

  /(^\d{1,4})(?:(\d{1,6})(\d{1,5})?)?/

テスト:

> r = /(^\d{1,4})(?:(\d{1,6})(\d{1,5})?)?/
> s = "378282246310005"
> while(s) { console.log(s.match(r)); s = s.substr(0, s.length - 1) }

["378282246310005", "3782", "822463", "10005", index: 0, input: "378282246310005"]
["37828224631000", "3782", "822463", "1000", index: 0, input: "37828224631000"]
["3782822463100", "3782", "822463", "100", index: 0, input: "3782822463100"]
["378282246310", "3782", "822463", "10", index: 0, input: "378282246310"]
["37828224631", "3782", "822463", "1", index: 0, input: "37828224631"]
["3782822463", "3782", "822463", undefined, index: 0, input: "3782822463"]
["378282246", "3782", "82246", undefined, index: 0, input: "378282246"]
["37828224", "3782", "8224", undefined, index: 0, input: "37828224"]
["3782822", "3782", "822", undefined, index: 0, input: "3782822"]
["378282", "3782", "82", undefined, index: 0, input: "378282"]
["37828", "3782", "8", undefined, index: 0, input: "37828"]
["3782", "3782", undefined, undefined, index: 0, input: "3782"]
["378", "378", undefined, undefined, index: 0, input: "378"]
["37", "37", undefined, undefined, index: 0, input: "37"]
["3", "3", undefined, undefined, index: 0, input: "3"]
于 2013-09-19T08:41:12.077 に答える