4

フィールドが有効な時間値(秒のみ)であるかどうかを確認したいと思います。だから私は0から59までの数字を受け入れたいと思います。私はこれを思いついた:

[0-5][0-9]?

これはほとんど仕事をします。ただし、7-8-9の数字は除外します...ユーザーが07の数字の場合は機能しますが、ユーザーに最初の0の数字を強制したくないので、次のように試しました。

([0-5][0-9]? | [0-9]) 

ただし、これは機能せず、再帰呼び出しが多すぎるというエラーが発生します。

何か案が?

4

4 に答える 4

8

2番目の正規表現で?は、最初の部分からそれを削除し、次の[1-5]代わりに作成する必要があり[0-5]ます。

[0-9]|[1-5][0-9]

7また、との両方を許可するのに十分な柔軟性が必要な場合は07、次を使用します[0-5]

[0-9]|[0-5][0-9]  

次に、上記の正規表現を単純化すると、次のように使用できます。

[0-5]?[0-9]   // ? makes [0-5] part optional
于 2013-02-12T19:25:36.150 に答える
1

これで十分です。[0-5]?\d

ただし、2桁の数字(つまり0102...)を適用する場合は、次を使用する必要があります。[0-5]\d

于 2013-02-12T19:26:41.377 に答える
0

単位位置ではなく、10桁をオプションにする場合は、次のように配置し?ます。

[0-5]?[0-9]
于 2013-02-12T19:29:18.360 に答える
0

0をオプションにする場合は?、代わりにの直後に移動し[0-5]ます。

[0-5]?[0-9]それをする必要があります。

于 2013-02-12T19:30:27.870 に答える