ユーザーの姓を取得するテキスト ボックスがあります。正規表現でハイフン (-) を 1 つだけ許可するにはどうすればよいですか?
^([a-z A-Z]*-){1}[a-z A-Z]*$
ユーザーの姓を取得するテキスト ボックスがあります。正規表現でハイフン (-) を 1 つだけ許可するにはどうすればよいですか?
^([a-z A-Z]*-){1}[a-z A-Z]*$
正規表現では、1 つだけ許可されます-
。ただし、「Smith」、「Smith-Kennedy」は一致させたいが、「Smith-」は一致させたくない場合は、ハイフンを 2 番目のグループに移動する必要があります。
^[a-z A-Z]+(-[a-z A-Z]+)?$
ところで、ほとんどの場合、*
を使用+
する方がより良い解決策です。
否定先読みを使用して、複数のハイフンを持つ文字列を拒否できます。
^(?![^-]+-[^-]+-)[a-zA-Z- ]+$
debuggex の一致したデモ。
debuggexの別の一致したデモ。
debuggex のNot Matched Demoデモ。
正規表現の問題は、ユーザーに-
. オプションにするために使用でき?
ます:
^[a-z A-Z]*\-?[a-zA-Z]*$
一致する場合.*-.*-
は、複数のハイフンがあり、そのような文字列は受け入れられません。