2016-05-04 48 views
0

我正在尝试编写一个基本的正则表达式来验证电子邮件地址。对于这个特定情况,我试图确保输入的字符串只包含字母,数字,“。”和“@”。或者换句话说,我确保它不包含字符,如£&¬!等等取消电子邮件字符正则表达式

我试图得到这个[[:alnum:]。@] +的非版本,以便它会突出显示一个字符不在该集合中,但我无法让它工作。我也尝试过不使用[\ W。@] +中的字符(这意味着要被转义,但是stackoverflow会从这篇文章中删除\),但\ W仍然在继续。和@符号。

+0

您使用哪种语言? – kennytm

+0

它将被用于typescript/Angular2 – Mufasatheking

+0

如果我正确地理解了你,你说'\ W'正在拾取'.'和'@'?这意味着你不能使用'\ W',对吧?我想,如果你想要一个只有字母,数字的字符串。和@,你会想''\ w。@]',注意小写'w',并且不要做任何否定。 Sidenote,我很确定(不是正面的),你不需要在括号内跳过'.' – dwanderson

回答

0

你可以...

  • ...匹配阳性(您正则表达式加锚,以确保其完整的测试字符串匹配)
    ^[[:alnum:][email protected]]+$
  • ...比赛为阴性,这意味着在某些时候非法字符出现
    [^[:alnum:][email protected]]

...并检查是否有匹配。第一种情况意味着'好',在第二种'失败'中。

Theer是不支持posix字符类的正则表达式方言,在这种情况下,用0-9a-zA-Z替换[:alnum:]

0

有很多电​​子邮件地址正则表达式模式的例子。这是一个非常基础的/天真的,只允许字母数字和句点(和一个@)。这其中并不关心域部分是有效的格式(即像“ABC @ gmail的...... COM”会通过):

^[A-Za-z0-9.][email protected][A-Za-z0-9.]+$ 
相关问题