我需要一些关于正则表达式的帮助。我需要检查登录,登录可以有字母、数字和下划线。它必须至少有一个字母,并且中间可以有一个下划线。
现在我有了这个:
^([a-z0-9_])+$/iu
但它允许以任何顺序使用所有。
在这里试试这个:
^(?<=[a-z])(?<=[0-9])[a-z0-9]+(_[a-z0-9]+|)$/iu
因此,至少一次必须有一个字母或数字开头。这可以是可选的,一个 _ 至少还有一个字母/数字,或者什么都没有。
这(?<=[a-z])
是一个积极的后视断言,这意味着一个字母必须在里面。
我猜你正在寻找这个
^(?=[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]
在这里测试