如何验证此表格的电子邮件地址:[email protected]

问题描述:

我想知道一个正则表达式: 此表单的电子邮件地址:[email protected]。 AU如何验证此表格的电子邮件地址:[email protected]

几个问题:

“的学生。”是可选的,可以是任何词,例如“老师”。

“324234234”可以是任何字母数字字符(数字,文字,_等)

的电子邮件必须在结束“uws.edu.au”

这是我到目前为止有:

/(\d*)@\w*\.uws\.edu\.au/ 

有效地址:

[email protected] [email protected] [email protected]

谢谢你们

+1

你必须逃避'.'否则它匹配任何东西 – leppie 2010-11-05 04:18:27

+1

什么是不清楚的问题?似乎有点斗气投票给我,但没有说明为什么。 – Jason 2010-11-05 04:36:49

+0

那么在第一部分有效的其他字符呢?电子邮件地址?如'$','&','''和'#' – EmFi 2010-11-05 04:39:43

你说:

刚试过/(\w*)@(\w*.)?uws.edu.au/和似乎工作。欢迎任何进一步的建议 - 杰森4秒前

您的正则表达式匹配"@teacher.uws.edu.au"(即“名称部分”省略)。

为了解决这个问题,你可以使用:

/(\w+)@(\w+\.)?uws\.edu\.au/ 

这将需要在名称部分至少一个字符,以及至少一个字符前点(如果有一个点)的子域点。

而且(我认为)\w匹配.(也可能是你关心的名称部分过其他字符),所以[email protected]将无法​​匹配。下面将添加字符._,和-成“名”部分:

/([\w\._-]+)@(\w*\.)?uws\.edu\.au/ 

你可以添加你以同样的方式需要任何其他字符。

注:匹配的电子邮件地址一般比你想象的更复杂的东西(很多奇怪的事情是技术上允许电子邮件地址Here is an article on the subject(市面上有许多类似的信息)许多其他来源

三个想法:

  • 更改初始\d\w匹配 “字” 字符[A-ZA-Z0-9_],而不仅仅是数字。
  • 请使用?
  • 使用+而不是*匹配用户名和子域时,子域可选。否则@.uws.edu.au将验证。

建议:

/\[email protected](\w+\.)?uws\.edu\.au/