0

名が必要regular expressionです 2 文字以上で始まる必要があります。

私は以下を使用しています

/^[A-Z a-z]{2,25}$/
4

2 に答える 2

3

あなたの正規表現はスペースを許可しているように見えるので、それが有効かどうかはわかりません。

最初に少なくとも 2 つの英字を指定する正規表現が必要な場合は、次のように使用できます。

/^[A-Za-z]{2}/

これにより、最初の 2 文字が強制的にアルファ文字になり、文字列の残りの部分はまったく制限されなくなります。その後、同じ文字とスペースを最大23 文字まで使用できるようにする場合は、次のようにします。

/^[A-Za-z]{2}[A-Za-z ]{0,23}$/

それ以外の場合、文字の定義に最初の 2 文字であってもスペースが含まれている場合は、現在の正規表現で問題ありません。

于 2013-04-15T08:39:23.767 に答える
0

問題は、どの正規表現を使用しているかです。私はPOSIX REを想定しています。

あなたの解決策はかなり良いですが、実名を確認すると、スペースは役に立ちません。(もしかしたらマインドネームもチェックしているかも???) そして(たぶん)最初の文字は大文字、残りは小文字でいいじゃないですか。もしそうなら、私は提案します:

/^[[:upper:]][[:lower:]]{1,24}$/

組み込みの文字クラスを使用する利点は、他の言語でも機能することです。

例:

$ echo -e "Alpha\nalpha\naLpha\nThisisaverylongfirstname\nThisfirstnameismuchlongertobesure"\
|egrep '^[[:upper:]][[:lower:]]{1,24}$'
Alpha
Thisisaverylongfirstname
于 2013-04-15T08:58:40.553 に答える