0

入力フォーム フィールドの 1 つを検証する RegEx を作成しようとしています。これにより、文字値 (TBA または NA) または最大 9 桁の整数 (これはフィールド制限 vtype によって設定されます) または 5.3 形式のいずれかが許可されます。 12345.123 または 12345.001 など。以下は、私が検索からまとめたものです。

/^([A-Z])|([0-9]+)(\.([0-9]{1,2}))?$/i;

これはアルファと整数でうまくいくように見えましたが、5.3 形式になると、12345.1 または 12345.12 のような値を無効にして、「12345.123」のような適切な 5.3 形式の値のみを受け入れるように強制したかったのです。

私は正規表現があまり得意ではなく、オンラインで検索して結果を組み合わせることにのみ依存していたので、どんな支援も大歓迎です!

ありがとうマイク

4

6 に答える 6

1

次の式を使用できます。

^(?:[A-Z]+|[0-9]{1,9}|[0-9]{5}\.[0-9]{3})$

(?:)この式が完全な入力のみに一致し、部分的なテキストには一致しないように、一致全体が を使用してグループ化されていることに注意してください。

したがって、この式は大文字のみに一致します[A-Z]+

または、完全な 9 桁の数字に一致します[0-9]{1,9}

または、5 桁の後にドット.が続き、3 桁が続く場合に一致します[0-9]{5}\.([0-9]{3})

正規表現 101 デモ

于 2013-08-29T22:37:02.900 に答える
1
^([A-Za-z]+|\d{1,9}|\d{5}\.\d{3})$

正規表現の視覚化

Debuggex でライブ編集

于 2013-08-29T22:28:51.787 に答える
0

これを試してください: ^([A-Z]+|[0-9]{1,9}|(\d{5}.\d{3}))$

于 2013-08-29T22:35:51.053 に答える
0

ここに間違った部分があります: . 基本的に、小数点以下は 1 桁または 2 桁しか使用できないと言っています。だからここにあります:/^([A-Z])|([0-9]+)(.([0-9]{1,2}))?$/i;

/^([A-Z]+)$|^(\d+\.\d{3})$|^(\d{1,9})$/i;

サンプルはこちら

于 2013-08-29T22:28:59.257 に答える
0

では、小数点の左側に 5 つの数字、右側に 3 つの数字が必要ですか?

これはどう:

/^([A-Z]+)|([0-9]{1,9})|([0-9]{5}\.[0-9]{3})$/i

「1 ~ 9 の数字」と「5.3 の 10 進数」の形式を別々に指定すると、より明確になります。{n}パターンの後に (中かっこ) を追加すると、そのパターンの n 回の出現に一致することを示します。

注:上記はテストしていません。

于 2013-08-29T22:29:53.920 に答える