1

正規表現について助けが必要です。ログインを確認する必要があります。ログインには文字、数字、アンダースコアを含めることができます。少なくとも1文字が必要で、中央にアンダースコアを付けることができます。

今私はこれを持っています:
^([a-z0-9_])+$/iu しかし、それはすべてを任意の順序で使用することを可能にします。

4

2 に答える 2

3

ここでこれを試してください:

^(?<=[a-z])(?<=[0-9])[a-z0-9]+(_[a-z0-9]+|)$/iu

したがって、少なくとも1回は、先頭に文字または数字が必要です。それはオプションで1つ来ることができます_少なくとももう1つの文字/数字または何もインストールされていません。

これ(?<=[a-z])前向きな後読みアサーションであり、文字が内部にある必要があることを意味します。

于 2012-12-01T14:14:54.383 に答える
1

私はあなたがこれを探していると思います

^(?=[a-zA-Z\d].*)(?=.*[a-zA-Z])(?=.*[a-zA-Z\d]$)(?=[^_]*(_)?[^_]*$)[a-zA-Z\d_]+$
  ---------------  ------------ ---------------- ---------------
        |              |                |              |->this checks that there is 0 to 1 occurance of _
        |              |                |->this checks if it ends with any of [a-zA-Z\d]
        |              |->this checks if there is atleast 1 alphabet
        |->this checks that it starts with [a-zA-Z\d]

ここでテストしてください

于 2012-12-01T14:16:59.410 に答える