1

パターンを使用していて、^(\d{1,3})\-(\d{1,3})$機能しているように見える値の範囲をテキストボックスに含めるように要求されました。

さらに、今、彼らは次のことを望んでいます: 0 to 20 ORから制限され た正の2桁の数字正の2桁の範囲(01-20 or 1-3 or 1-03 or 01-4 and so on)

私は使用して^\d{2}([\-]\d{2})?$いますが、0から20の制限を課す方法がわかりません

C#ASP.NetRegularExpressionValidatorを使用します。

前もって感謝します

4

3 に答える 3

2

pattern1^(20|[10]?\d)$は 0 ~ 20 に一致します

pattern2^(20|[10]?\d)(?:-(20|[10]?\d))?$は、「0-20」、「1-20」、「2-20」...「20-20」、または 0 ~ 20 に一致します。

しかし、悪いニュースは、pattern2 が "5-1"、"20-3" のような文字列に一致することです。

この問題の特効薬は存在しません。範囲をチェックするコードを書く必要があります (グループ 1 とグループ 2 から文字列を取得し、それらを整数に変換して比較します)。

于 2012-07-31T19:20:35.930 に答える
0

20 の制限については、数字を個別に行う必要があります。20 か、1 桁目が 0 ~ 1、2 桁目が 0 ~ 9 であることを確認してください。

すなわち20 | ([0-1]?[0-9])

編集:したがって、すべてが^\d{2}([-](20 | ([0-1]?[0-9])))?$.

于 2012-07-31T18:05:24.653 に答える
0

これを試してください: ([01]?\d|2\d)。

それはあなたが探していることをするかもしれません。

于 2012-07-31T18:12:23.640 に答える