我可以使用正则表达式从[a-z0-9]*
获取[a-z0-9]*@example.com
部分,但我希望将[a-z0-9]*
部分限制为20个字符。是否可以使用正则表达式?
编辑:我改变了主意,我不会使用{0,20}
,我会使用strlen()
。这一个:if (preg_match('/[a-z0-9]*@metu\.edu\.tr/',$_POST['email']) && strlen($_POST['email']) < 35)
答案 0 :(得分:12)
[a-z0-9]{0,20}@example.com
会将其限制为0到20个字符。
答案 1 :(得分:2)
使用此:
[a-z0-9]{0,20}@example.com
或者这个:
[a-z0-9]{1,20}@example.com
据说,最近发现的电子邮件有一个完美的正则表达式(假设你正在尝试做的事情):
/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i
了解更多here。