2016-06-27 5 views
-2

iが入力された値が数値範囲であるかどうかを検証したいと最初の桁は、私は、この正規表現を使用ExtJSの正規表現

第二桁未満であるかどうかを確認します:/\ d + - \ d +?$/ですが、最初の桁が2番目の桁よりも小さいかどうかを確認する必要はありません。

+2

正規表現はこれにはあまり適していません。これは、実行環境(すなわち、プログラミング/スクリプト言語)(b.t.w.は常にregex-questionsでタグ付けする必要があります)によっては実行できません。 – ClasG

+0

入り口?あなたは['minValue'](http://docs.sencha.com/extjs/6.0.1-classic/Ext.form.field.Number.html#cfg-minValue)と[' maxValue'](http: //docs.sencha.com/extjs/6.0.1-classic/Ext.form.field.Number.html#cfg-maxValue)? – Alexander

+1

キャプチャグループを使用して数値を取得し、プログラミング言語で数値を比較するだけです。 '/(\ d +) - (\ d +)/'は数字を\ 1と\ 2に入れます。 $ 1と$ 2はjavascript正規表現の味です。または、数字の最初の桁を比較したいだけなら、 '/(\ d)\ d * - (\ d)\ d * /'です。 – LukStorms

答えて

1

これはではなく、あなたがそれを行う方法です!しかし、私は少し散歩のために私の心を取りたいと思ったので、私はそれを行う方法を考え始め、正規表現でそれをやっての愚かさを説明する。

この方法では、最初の数は2桁の数字の最大とあなたのためにそれを行います。

^(\d-[1-9]\d+|1\d-[2-9]\d+|2\d-[3-9]\d+|3\d-[4-9]\d+|4\d-[5-9]\d+|5\d-[6-9]\d+|6\d-[7-9]\d+|7\d-[8-9]\d+|8\d-9\d+|0-\d|1-[2-9]|2-[3-9]|3-[4-9]|4-[5-9]|5-[6-9]|6-[7-9]|7-[8-9]|8-9|\d0-\d\d|\d1-\d[2-9]|\d2-\d[3-9]|\d3-\d[4-9]|\d4-\d[5-9]|\d5-\d[6-9]|\d6-\d[7-9]|\d7-\d[8-9]|\d8-\d9)$ 

See it here at regex101

あなたはなぜそれが行く方法ではないのを見始めていますか?

とにかく、それは、3つの部分で行われます:

  1. テストより高い十桁に対して左十桁(またはそれ以上)の右側
  2. テスト一桁(左、右よりも低い)
  3. 両方が同じ10桁の場合は、互いに1桁の数字をテストしてください。

注意!それは手書きであり、あまりテストされていないので、エラーが含まれている可能性がありますはおそらくさらに最適化されています。一桁で

それはしかし可能です:

^(0-\d|1-[2-9]|2-[3-9]|3-[4-9]|4-[5-9]|5-[6-9]|6-[7-9]|7-[8-9]|8-9)$ 

が、より多くの桁、より多くのばかげました。