繁体   English   中英

使用Regex验证用户名

[英]Username validation with Regex

我有一个注册表格,用户可以在其中输入其他信息,包括公司名称和公司URL ID。 现在,我想向用户建议“ URL ID”,以便当他键入“名称”时,“ URL ID”应基于此输入(非常类似于Facebook的“名称”和“用户名”范例)。 我还应该提到,在提出建议后,用户可以手动输入“ URL ID”进行更正。

必须提及,根据此问题,我能够使用以下Regex表达式成功实现“名称”字段的服务器端验证(不需要客户端验证):

/^[\p{L}\p{N}]+(?:[- \'\x26][\p{L}\p{N}]+| [\x26] [\p{L}\p{N}]+)*$/iu

必须将某些规则应用于URL ID:

  • 有效字符为:大小写字母(仅拉丁字母),数字,破折号,下划线和点
  • 必须以字母或数字开头和结尾
  • 行中不得包含多个特殊字符(破折号,下划线或点)
  • “ URL ID”中可以有多个特殊字符

作为有效和无效的示例,下面是一些示例:

有效输入

  • myusername
  • my.username12
  • my.user20_name
  • 8位用户名

输入无效

  • myuser20name。
  • _myusername10
  • 我的..用户名
  • myuser-.name

简而言之,需要做两件事:

  • 当用户输入/粘贴“名称”字段时,我需要即时输入信息,仅保留允许的字符丢弃其余字符,并使用过滤的输入内容填写“ URL ID”字段
  • 当用户输入/粘贴“ URL ID”字段时,我需要输入以根据上述规则进行验证,例如,键入“ my.user-”就可以了(尽管由于服务器端验证失败)以“-”作为最后一个字符),但不允许输入其他“-”

我想我只需要有效的Regex表达式,我就能自己编写其余的代码。 任何帮助,将不胜感激。

我不知道我是否了解所有规则,但是根据他的示例,此正则表达式可以准确验证您的需求!

^[a-zA-Z0-9]+([-_\.][a-zA-Z0-9]+)*[a-zA-Z0-9]$

http://regexr.com?36f5b

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM