1

我需要一些关于正则表达式的帮助。我需要检查登录,登录可以有字母、数字和下划线。它必须至少有一个字母,并且中间可以有一个下划线。

现在我有了这个:
^([a-z0-9_])+$/iu 但它允许以任何顺序使用所有。

4

2 回答 2

3

在这里试试这个:

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

因此,至少一次必须有一个字母或数字开头。这可以是可选的,一个 _ 至少还有一个字母/数字,或者什么都没有。

(?<=[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 回答