Regex不允许在电子邮件地址的电子邮件名称的开头或结尾出现特殊字符



我有以下电子邮件地址的正则表达式条件:

var value = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9]+.[a-zA-Z]{2,}$/

但是我不希望名称以句号(.)或下划线(_)或连字符(-)和开始或结束这个特殊字符应该只包含在中间

例如:

_name.name_@email.com Invalid
-name.name-@email.com Invalid
name.@email.com Invalid
name_@email.com Invalid
name-@email.com Invalid
.name@email.com Invalid
_name@email.com Invalid
-name@email.com Invalid
name.name@email.com Valid
name_name@email.com Valid
name-name@email.com Valid

我正在努力找出解决办法,并在这个过程中学习。

可以使用

var value = /^[a-zA-Z0-9]+(?:[._-][a-zA-Z0-9]+)*@[a-zA-Z0-9]+.[a-zA-Z]{2,}$/

细节:

  • ^-字符串
  • 起始
  • [a-zA-Z0-9]+-一个或多个字母/数字
  • (?:[._-][a-zA-Z0-9]+)*-./_/-的零次或多次出现,然后是一个或多个字母/数字
  • @- a@char
  • [a-zA-Z0-9]+-一个或多个字母/数字
  • .- a点
  • [a-zA-Z]{2,}-两个或多个字母
  • $-字符串结束

查看regex演示

Regex:^[a-zA-Z0-9_%+-]+(.?[a-zA-Z0-9_%+–]+)*@[a-zA-Z0-9]+(?:[_-][a-zA-Z0-9]+)*.[a-zA-Z]{2,6}$是一个工作的正则表达式,满足以下条件

  1. 用户名:字母数字或. _ % + –这5个特殊字符
  2. 邮件服务器:中间是字母数字或连字符或_下划线。
  3. 顶级域名:只包含2-6个字母字符

在这个正则表达式中以@[a-zA-Z0-9]+(?:[_-][a-zA-Z0-9]+)*开头的部分用于邮件服务器验证

(?:[_-][a-zA-Z0-9]+)*- 0个或多个下划线连字符字符,然后一个或多个字母/数字

[_-]匹配列表

中的单个字符

相关内容

  • 没有找到相关文章

最新更新