电子邮件的正则表达式,但可以包括空格

时间:2018-05-01 08:15:09

标签: c# regex

我有一个正则表达式问题,有60个字符的电子邮件字段。我让正则表达式用于电子邮件验证, 但我不确定如何忽略电子邮件后的空格,但只有整个字符串是60个字符。如果有 60个字符之后的任何内容都无效。

<canvas id="background" width="1000" height="1000"></canvas>

这应该是一个有效的字符串(我在这里使用引号来显示字符串长度) 'test1.test123@testtesttest.com'

这不应该是有效的字符串 'test1.test123@testtesttest.com m'

2 个答案:

答案 0 :(得分:0)

提到的正则表达式不起作用(见下文)

enter image description here

所以我使用了我的并且添加了最大限制为60个字符的验证

^(?!^.{60})(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z0-9]+[\w-]*\.)+[a-zA-Z]{1}[a-zA-Z0-9-]{1,23})

此正则表达式使用lookarounds语法。您可以在各种屏幕截图中看到输出。您可以在here查看其工作原理。

此处(?!^.{60})匹配60个字符的最大限制。其余的正则表达式语法用于验证正确的电子邮件地址。

enter image description here

enter image description here

如果还是,请参阅正则表达式不验证字符串test1.test123@testtesttest.com m

enter image description here

答案 1 :(得分:0)

好吧,如果你坚持使用正则表达式,你可以使用positive lookahead来限制字符串的总长度,只需在你的正则表达式之前添加以下内容:

(?=.{6,60}$)

这会将输入字符串的总长度限制在6 (有效电子邮件地址的最小长度)和60 (您首选的最大长度)之间。

您还可以将[ \t]+替换为\s+以匹配其他空格字符\s*以接受输入(如果它以空白字符结尾或不结束)如果你有兴趣匹配所有类型的空格字符。

因此,您的模式看起来像这样:

^(?=.{6,60}$)([A-Za-z0-9!#$%&'*+/=?^_`{|}~-])([A-Za-z0-9.!#$%&'*+/=?^_`{|}~-])*[@]([A-Za-z0-9.\-])([A-Za-z0-9.\-])*[.][A-Za-z.]{2,6}\s*$

Try it online

希望有所帮助。