0

JQuery Validation Engineライブラリを使用しています。フィールド入力を介してRegex、または検証するために、カスタム検証を作成しようとしています。custom method

この検証名を としてお勧めしcustom integer validation containing integer range or some integers separated by comma(s) or combination of bothます。

基準は次のとおりです。

  1. 任意の整数を入力できます。例えば89
  2. 任意の整数範囲を入力できます。たとえば12-18、または15-18そうでない場合19-3 (range should between min to max)
  3. カンマ (,) で区切られた上記の 2 つの入力の任意の組み合わせを入力できます。例えば1-6, 5, 8-13, 7しかし、そうではない -3-5 (not -3)3-7-, 10 (not 7-)

このカスタムルールを試しました:

"integerRangeComma": {                    
             "regex": /^(([0-9]+)([\,]([0-9]+))?|([\,]([0-9]+))?)$/,
             "alertText": "* Invalid floating decimal number"
          },

上記の検証を行う目的は次のとおりです。

合計ドキュメントのリストがあるとします12。フォームにテキストボックスを作成して、彼がプロファイルに追加するのが好きなドキュメントを受け入れるようにしました。そして、上記の基準はそれに適用されるべきです。

次の質問は、ユーザーが入力した数値が を超えないことも検証する必要があるということです12 (my presumption)

独自のカスタム ルールを作成するか、他の方法でこれを達成するにはどうすればよいですか。

前もって感謝します。

4

1 に答える 1

2

正規表現を使用して数学を行うことは常に苦痛です。それを解析し、コードで12以下の条件を確認する必要があります。ただし、この簡単な例では、

[0-9]|1[12]

単一の整数または範囲の入力の組み合わせは、次のようになります。

number(-number)?

1つの入力、または2つの分離された入力の場合

input(\s*,\s*input)?

2つ以上が必要な場合は、の代わりに*無制限または制限付きの繰り返しに使用してください。{0,n}?

一緒に、あなたは

var integerRangeComma = {                    
     "regex": /^([0-9]|1[12])(-[0-9]|-1[12])?(\s*,\s*([0-9]|1[12])(-[0-9]|-1[12])?)?$/,
     "alertText": "a single page number until 12 or an interval in them, or two of those separated by a comma"
};
于 2012-09-07T12:25:18.657 に答える