1

14文字の長さを検証する正規表現が1つあります。しかし今、私はそれが2の長さで乗算できることを確認したいと思います.

私の現在の正規表現は"(0[0-1][0-9][0-9][0-9][0-9]0[0-2]0[0-4]0[0-2]0[0-2])"

14 の長さの文字列のみを受け入れます

match : `00000002000102 00000002000101`
do not match : `00 , 0000 , 00000200,`

上記の文字列も一致しないことを受け入れたいと思います。

私がやりたいことを以下に説明しました

編集済み:

ここで、私の要件をもう一度説明します

私の文字列の長さは 14 桁になりますが、文字列で最初の 2 桁が必須であることを確認してください。私の文字列には、以下で言及する6つの異なる検証部分があります。

first part would be  : 00 or 01 only  : Sting length should be 2 only
second part would be : 0000-9999 any value between this.    : Sting length should be 6 only
third part would be  : 00 or 02 only             : Sting length should be 8 only
fourth part would be : 00 or 01 or 04 only even not 03.: Sting length should be 10 only
fifth part would be  : 00 or 01 or 02            : Sting length should be 12 only
sixth part would be  : 00 or 01 or 02            : Sting length should be 14 only
  • ここで、入力文字列に必須の最初の部分が含まれている場合。
  • 2 番目の部分が含まれる場合は、1 番目と 2 番目の両方が必須であり、両方の部分が上記の検証に従って検証される必要があります。
  • 文字列に 3 番目の部分が含まれている場合、長さが 8 で、最初と 2 番目の部分が含まれていることを意味し、上記の条件に従って 1 番目、2 番目、3 番目の部分を強制的に検証します。
  • 文字列に 4 番目の部分が含まれている場合、その長さは 10 であり、1 番目と 2 番目と 3 番目の部分が含まれていることを意味し、上記の条件に従って、1 番目、2 番目、3 番目、4 番目の部分も強制的に検証します。
  • 上記と同様に第6部まで続きます。

私を助けて、現在の正規表現の実装で何を変更する必要があるか教えてください

ありがとう

4

2 に答える 2

0

第 4 グループの定義

4 番目の部分は : 00 または 01 または 04 のみで、03 ではありません。

不明です。ここに02が必要ですか?

02 で第 4 部を許可

/^((0[01])|(0[01][0-9]{4})|(0[01][0-9]{4}0[02])|(0[01][0-9]{4}0[02]0[0124])|(0[01][0-9]{4}0[02]0[0124]0[0-2])|(0[01][0-9]{4}0[02]0[0124]0[0-2]0[0-2]))$/

4 番目の部分で 02 を使用することはできません

/^((0[01])|(0[01][0-9]{4})|(0[01][0-9]{4}0[02])|(0[01][0-9]{4}0[02]0[014])|(0[01][0-9]{4}0[02]0[014]0[0-2])|(0[01][0-9]{4}0[02]0[014]0[0-2]0[0-2]))$/

^ と $ を使用しなかったため、最初のパターンが 14 記号を超える文字列を受け入れたことに注意してください。

于 2012-12-26T07:53:16.080 に答える