私はJSと一致する必要があります:
- 数、
- 1 文字 (または 2 文字) が続く可能性があります。
- スペースで区切ることができます
- またはハイフン
例えば:
23
4545a
1B
554 cs
34-S
正規表現は私の得意分野ではないので、私が持っているのはこれだけです...
^[0-9A-Za-z ]+$
更新しました:
^(0-9A-Za-z )+$
私はJSと一致する必要があります:
例えば:
23
4545a
1B
554 cs
34-S
正規表現は私の得意分野ではないので、私が持っているのはこれだけです...
^[0-9A-Za-z ]+$
更新しました:
^(0-9A-Za-z )+$
Aaaaand、私のものは他の答えのハイブリッドです。:)
/^\d+[ -]?[a-z]{0,2}$/i
\d+
= 1桁以上[ -]?
= オプションのスペース文字 (注: 「空白」ではなく、スペースのみ) またはダッシュ[a-z]{0,2}
= 1 つまたは 2 つの英字 (注: 現時点では小文字のみですが、読み続けてください . . .)i
最後の は大文字と小文字を区別しないため、[a-z]
は大文字または小文字のアルファベットと一致します。編集- わかりました。すべての回答にエラーが見つかりました。LOL アルファ パターンでは最後に 0 文字が許可され、スペースとダッシュはオプションであるため、これまでに提供した正規表現は、次のテスト データに対して誤検知をもたらします123-
。456 <--- with a space at the end
2 番目の値は on を使用して解決でき$.trim()
ます (テストしようとしているものが許可されている場合) が、最初の値はできません。
そう 。. . これにより、これらの状況を処理するための新しい正規表現が得られます。
/^\d+([ -]?[a-z]{1,2})?$/i
\d+
= 1桁以上[ -]?
= オプションのスペース文字 (注: 「空白」ではなく、スペースのみ) またはダッシュ[a-z]{1,2}
= 1 つまたは 2 つの英字を使用する必要があります (注: 現時点では小文字のみですが、読み続けてください . . .)( . . . )?
が数字の後にのみ有効であることが強制されます。. . ただし、そのグループ全体はオプションです。i
最後の は大文字と小文字を区別しないため、[a-z]
は大文字または小文字のアルファベットと一致します。彼らは更新された正規表現がすべての例に一致し、私が言及した 2 つの無効なケースでも失敗しました。
注:数字の後にスペースが続くものを有効と見なす必要がある場合は、テストする前に値をトリミングすることで、そのケースもパスできるようになります。
次のようにしますか?
^[0-9]+( |-)?[A-Za-z]{0,2}$