如何验证此表格的电子邮件地址:234903284@student.uws.edu.au

时间:2010-11-05 04:16:36

标签: php regex

我想知道一个可以验证的正则表达式: 此表格的电子邮件地址:234903284@student.uws.edu.au

几个问题:

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

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

电子邮件必须以“uws.edu.au”结尾

这是我到目前为止所做的:

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

有效地址:

me@uws.edu.au 234234324@student.uws.edu.au theking@teacher.uws.edu.au

谢谢大家

2 个答案:

答案 0 :(得分:4)

三个想法:

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

建议:

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

答案 1 :(得分:2)

你说:

  

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

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

要解决此问题,您可以使用:

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

这将需要名称部分中至少有一个字符,并且子域中点(如果有点)之前至少有一个字符。

另外(我认为)\w匹配.(也可能是您在名称部分中关注的其他字符),所以{{1}将无法匹配。以下内容会将字符bob.jones@student.uws.edu.au._添加到“名称”部分:

-

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

注意:匹配电子邮件地址一般比您想象的更复杂(许多奇怪的事情在技术上允许在电子邮件地址中使用。Here is an article on the subject(还有许多类似信息的其他来源。)