1

RFC 5396asdotで説明されているように、表記にAS 番号を含める必要がある Web フォーム フィールドを検証するには、正規表現が必要です。

asdot

  refers to a syntax scheme of representing AS number values less
  than 65536 using asplain notation and representing AS number
  values equal to or greater than 65536 using asdot+ notation.
  Using asdot notation, an AS number of value 65526 would be
  represented as the string "65526" and an AS number of value 65546
  would be represented as the string "1.10".

Javascript RegExp オブジェクトと Java EE javax.validation.constraints.Patternを正規表現で使用したいと考えています。

4

1 に答える 1

3

これは、必要なことを行うJavascript正規表現です。

/^([1-5]\d{4}|[1-9]\d{0,3}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])(\.([1-5]\d{4}|[1-9]\d{0,3}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]|0))?$/   

前提:
数字で始まること0.は許可されていません。
ドットの後にゼロを含む数値は、私が推測するように許可されて655361.0ます。たとえば、ドットの後の数値に先行ゼロを使用することはできません1.00009。無効です。
4 バイトの AS 番号の最大値は4294967295です。65536*65535 + 65535つまり65535.65535、asdot 表記です。

Javascript RegExp オブジェクトとして:

var asdot = new RegExp("^([1-5]\\d{4}|[1-9]\\d{0,3}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])(\\.([1-5]\\d{4}|[1-9]\\d{0,3}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5]|0))?$");

console.log( asdot.test('65535.65535') )   // true

Java パターンとして:

Pattern asdot = Pattern.compile("^([1-5]\\d{4}|[1-9]\\d{0,3}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5])(\\.([1-5]\\d{4}|[1-9]\\d{0,3}|6[0-4]\\d{3}|65[0-4]\\d{2}|655[0-2]\\d|6553[0-5]|0))?$");

System.out.println( asdot.matcher("65535.65535").matches() );    // true
于 2013-01-08T10:29:52.490 に答える