-1

カンマで区切られた1から1000までの数字の文字列に一致する正規表現が必要です。

例:12,56,100,190,900,1000

検証のために、フロントエンドでjavascriptを使用し、バックエンドでphpを使用しています。理想的には、両方で機能する共通の正規表現が必要です。

4

2 に答える 2

3

カンマで区切られた1〜1000の範囲の数値は、次のように一致します。

(?<=,|^)([1-9][0-9]{0,2}|1000)(?=,|$)
于 2012-10-16T07:14:10.587 に答える
2

行全体を一致させたい場合は、次のようにする必要があります。

^([1-9][0-9]{0,2}|1000)(,([1-9][0-9]{0,2}|1000))*$

要件によっては、最初、最後、および/またはコンマの後に空白を入れることもできます。

これにより、最初に空白が許可されます。
^\s*([1-9][0-9]{0,2}|1000)(,([1-9][0-9]{0,2}|1000))*$

これにより、最後に空白が許可されます。
^([1-9][0-9]{0,2}|1000)(,([1-9][0-9]{0,2}|1000))*\s*$

これにより、コンマの後に空白を入れることができます。
^([1-9][0-9]{0,2}|1000)(,\s*([1-9][0-9]{0,2}|1000))*$

これらを好みに合わせて組み合わせてください。

編集2:ビニングまたは最後にコンマを許可する場合、正規表現は次のようになります。

^,?([1-9][0-9]{0,2}|1000)(,\s*([1-9][0-9]{0,2}|1000))*,?$

ここで,?は、0または1つのコンマを使用できることを意味します。

編集:説明、要求に応じて:

  • ^最初と$最後には入力マークの開始/終了があります-入力全体をテストすることを保証します
  • 括弧は期待どおりに機能します
  • [1-9]1から9までの数字に一致します。同様に[0-9]0から9までの数字に一致します。
  • {0,2}前の部分(この場合[0-9])が0〜2回存在することを示します
  • |論理的ですOR-一致する前の部分または一致した後の部分のいずれか

したがって、最初の括弧のセットでは、数字1から9に一致し、その後に0、1、または2桁の0から9が続きます。これにより、1から999までの数字が得られます。または、1000に一致します。

*次に、コンマに続いて上記と同じブロックを照合します。このロットは、括弧の後の文字で示されているように、0回以上照合されます。

于 2012-10-16T07:20:17.013 に答える