用perl写email验证时遇到的问题
Email匹配描述:第一部分:一个或多个(以一个或多个字母开头,后面是0个或多个数字减号、下划线)
第二部分:@
第三部分:一个或多个字母,后面是0个或多个减号、下划线
第四部分:一个或多个(以点号开头,后面跟随一个或多个字母)
表述貌似不太清晰吧,哈哈
#!/usr/bin/perl
$email = "test\@vip.sina.com";
$email = "ab\@sidf.xcom";
$email = "asdfkjskjskkjl";
$email = "a\@a.";
print join("\t",@email);
print "\n";
for ($i=0;$i<$#email+1;$i++) {
if ($email[$i] =~ /^(+(+)?[-_]*)@+(+[-_]*)(\.+)+$/i) {
print "Welecome! ".$&;
}else{
print "Sorry, ",$email[$i]," is a Invalide Email!";
}
print "\n";
}
注意的问题:
1、@为perl关键字,所以用例中必须\@处理。
2、$#email为数组email的长度。
3、对于$和@可以简单理解为单一和全部。$email[$i]即为唯一的值,@email即为所有数组。
页:
[1]