質問

Yahooのユーザー名ルールに一致する(php)正規表現が必要です:

  

4〜32文字を使用し、文字で始めます。文字、数字、アンダースコア、1つのドット(。)を使用できます。

役に立ちましたか?

解決

/^[A-Za-z](?=[A-Za-z0-9_.]{3,31}$)[a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*$/

またはもう少し短く:

/^[a-z](?=[\w.]{3,31}$)\w*\.?\w*$/i

他のヒント

/[a-zA-Z][a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*/

さらに、strlen($ username)<!> gt; = 4および<!> lt; = 32かどうかを確認します。

1つのドット制限?それはトリッキーです。

私は正規表現の専門家ではありませんが、それを除いてこれで得られると思います:

[A-Za-z][A-Za-z0-9_.]{3,31}

多分あなたはチェックすることができます。別途必要ですか?

先読みを使用すると、次のことができます。

^(?=[A-Za-z](?:\w*(?:\.\w*)?$))(\S{4,32})$

必要な正規表現のタイプを指定しなかったため、Perl 5互換のものをたくさん追加しました。キャプチャしていないかっこでは(?: ... )に似ています。

注:不足している親かっこを追加し直しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top