これらはそれぞれ、3 ~ 6 文字のシーケンスをチェックします。
1 つ目は 3 桁のみを許可します。
2 番目は 3 文字まで使用できますが、数字に加えてアンダースコアも使用できます。
3 番目は 3 文字まで使用できますが、数字に加えてアンダースコアとダッシュも使用できます。
これらが「有効」であるかどうかは、何を達成しようとしているかによって異なります。ダッシュは負の数を許可するのに役立ちますが、より厳密な正規表現ではダッシュを最初の位置に配置する必要があり、さらに 3 ~ 6 桁を追加できます。
アンダースコアに関する質問への回答として、これは 3 番目の正規表現で使用できる別の文字にすぎません。これは完全に合法的な正規表現です。
3 番目の正規表現を分析すると、次のようになります。
^
一致する文字列の開始を意味します
()
結果で括弧の間にあるものを個別にキャプチャすることを意味します。一致するものには影響しませんが、一致結果が返される方法に影響します。
[]
これらの括弧内のすべてに一致する文字セットを示します。
[0-9]
0 から 9 までの任意の文字が一致を構成する文字の範囲を示します。
[0-9_-]
上記と同じ範囲を示しますが、アンダースコア文字とハイフン文字も含まれます。
{3,6}
は、前の正規表現要素の 3 ~ 6 回の出現に一致させることを意味します。
$
文字列の終わりを意味します
したがって、3 番目の正規表現では、文字列の先頭に続いて、数字、アンダースコア、またはハイフンの 3 ~ 6 文字が続き、その後に文字列の末尾が続きます。
例として:
"444" - matches all three
"-44" - matches the second or third
"_-4" - matches the third
"4" - matches none
3 ~ 6 桁を許可し、正または負の正規表現が必要な場合は、次のようなものを使用します。
/^[+\-]?\d{3,6}$/
これにより、オプションで先頭にハイフンまたはプラスを付け、その後に 3 ~ 6 桁を続けることができます。