正则表达式最小和最大长度

时间:2011-10-03 14:12:59

标签: c# javascript regex

我正在使用以下正则表达式来验证电子邮件

^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

现在我想修改这个正则表达式以使用{5,100}来验证电子邮件的长度,我该怎么做?

谢谢。

2 个答案:

答案 0 :(得分:2)

^(?=.{5,100}$)\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

我正在使用零宽度前瞻。它不会消耗字符,因此您可以使用表达式重新检查它们。

答案 1 :(得分:1)

小心点。这是一个相对较弱的表达,甚至匹配 user@server.com.net.org 。电子邮件正则表达式已在许多其他问题中进行了讨论,例如this one

检查字符串的长度通常可以在您使用的语言/工具中完成。在某些情况下,这可能会更快。作为一个例子(在Perl中):

my $len = length $str;
if ($len < 5 || $len > 100) {
    # something is wrong
}