我正在尝试制作一个正则表达式来验证用户名。到目前为止,我有:
/^[^\.]{1}[A-Za-z0-9]*\.?[A-Za-z0-9]*[^\.]{1}$/
但它没有像我预期的那样工作。
以下规则用于验证用户名:
minlength = 3
)maxlength = 20
)[A-Za-z0-9]
个字符。 此外,在另一个页面上,用户可以输入用户名或电子邮件地址。有没有办法验证字符串是 有效用户名还是同一正则表达式中的有效电子邮件地址?
有效值的一些示例:
无效值的一些示例:
答案 0 :(得分:3)
如果你在脚本中检查长度而不是使用正则表达式
,这很容易但如果你必须这样做,你可以使用预先执行此操作:
/^(?=[a-z0-9.]{3,20}$)[a-z0-9]+\.?[a-z0-9]+$/i
[A-Za-z0-9]
与\w
如果您想使用相同的正则表达式来验证username
或e-mail
地址,请将您的第二个正则表达式放在|
符号之后:
/^(?=[a-z0-9.]{3,20}$)[a-z0-9]+\.?[a-z0-9]+$|^.*@\w+\.[\w.]+$/i
在这种情况下, ^.*@\w+\.[\w.]+$
是一个非常简单的邮件验证(您可能希望使用更好的邮件验证)
你不应该在一个正则表达式中做太多。
答案 1 :(得分:1)
您好,我为用户名提供了解决方案,它只允许在用户名中使用下划线作为特殊字符,并且还有助于同时验证电子邮件
/^(?=.{3,16}$)[a-zA-Z0-9]+([_?[a-zA-Z0-9]+)$|^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i