9

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

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

4

4 に答える 4

16
/^[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
于 2008-10-03T22:25:52.153 に答える
7
/[a-zA-Z][a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*/

strlen($username) >= 4 かつ <= 32 かどうかを確認します。

于 2008-10-03T21:25:27.407 に答える
2

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

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

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

を確認できるかもしれません。別途必要?

于 2008-10-03T21:24:22.183 に答える
1

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

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

必要な正規表現の種類を指定しなかったので、Perl 5 互換のものをたくさん追加しました。(?: ... )キャプチャしない括弧のように。

注:欠落していた閉じ括弧を追加しました。

于 2008-10-03T22:25:21.607 に答える