如何获得测试数字的正则表达式?



我有一个正则表达式来测试电子邮件模式:

([a-zA-Z]+d+b@b[a-zA-Z]+d+)

它应该测试@字符之后的数字:

john@mail2.com VALID
john2@mail.com VALID
john2@mail2.com VALID
jo2hn@mail.com VALID
john@m2.com VALID
john@mail.com INVALID

如何使此正则表达式工作?

您似乎不想匹配没有数字的字符串。

^(?!D*$)[da-zA-Z]+@[a-zA-Zd]+.com$

查看正则表达式演示

  • ^- 字符串的开头
  • (?!D*$)- 字符串不能只包含非数字字符(并且不能为空 - 否则,将*替换为+)
  • [da-zA-Z]+- 1+ 字母数字字符
  • @-@
  • [a-zA-Zd]+- 1+ 字母数字字符
  • .com-.com子字符串
  • $- 字符串的结尾。

此正则表达式匹配在 @ 符号之前或之后具有数字的任何字符串。

d[a-zA-Z]*@|@[a-zA-Z]*d

您没有解释目标规则。
您的意思是您需要电子邮件至少包含一个数字吗?

var rgx = /[a-zd]+(?:(?<=d.*)@|@(?=.*d))[a-zd]+.com/i;
rgx.test('john@mail2.com'); //true
rgx.test('john2@mail.com'); //true
rgx.test('john2@mail2.com'); //true
rgx.test('jo2hn@mail.com'); //true
rgx.test('john@m2.com'); //true
rgx.test('john@mail.com'); //false

相关内容

  • 没有找到相关文章

最新更新