名が必要regular expression
です 2 文字以上で始まる必要があります。
私は以下を使用しています
/^[A-Z a-z]{2,25}$/
あなたの正規表現はスペースを許可しているように見えるので、それが有効かどうかはわかりません。
最初に少なくとも 2 つの英字を指定する正規表現が必要な場合は、次のように使用できます。
/^[A-Za-z]{2}/
これにより、最初の 2 文字が強制的にアルファ文字になり、文字列の残りの部分はまったく制限されなくなります。その後、同じ文字とスペースを最大23 文字まで使用できるようにする場合は、次のようにします。
/^[A-Za-z]{2}[A-Za-z ]{0,23}$/
それ以外の場合、文字の定義に最初の 2 文字であってもスペースが含まれている場合は、現在の正規表現で問題ありません。
問題は、どの正規表現を使用しているかです。私はPOSIX REを想定しています。
あなたの解決策はかなり良いですが、実名を確認すると、スペースは役に立ちません。(もしかしたらマインドネームもチェックしているかも???) そして(たぶん)最初の文字は大文字、残りは小文字でいいじゃないですか。もしそうなら、私は提案します:
/^[[:upper:]][[:lower:]]{1,24}$/
組み込みの文字クラスを使用する利点は、他の言語でも機能することです。
例:
$ echo -e "Alpha\nalpha\naLpha\nThisisaverylongfirstname\nThisfirstnameismuchlongertobesure"\
|egrep '^[[:upper:]][[:lower:]]{1,24}$'
Alpha
Thisisaverylongfirstname