我正在尝试检测用户的电子邮件是否是Hotmail或Live地址,如果是,则回显错误。
以下是我尝试过的:

if ((preg_match('[a-zA-Z0-9_\.+]+@(live|hotmail)(\.[a-z]{2,3}){1,2}'))){
    echo "We do not accept hotmail and live";
}

它不起作用。我做错了什么?

最佳答案

因为您的唯一目的是检查电子邮件是否用于Live或Hotmail,所以不必过于复杂化正则表达式,只需执行以下操作:
--更新——
正如上面的注释所指出的,您已经错过了preg_match()的第二个参数。

if (preg_match('/(.*)@(live|hotmail)\.(.*)/', $emailVariable) != false) {
    echo "Get a real email provider";
}

因为您只想检查@live@hotmail,所以可以忽略tld和电子邮件的第一部分。演示文稿:http://rubular.com/r/TUlTUxmcQB
*注意:我正在使用!=因为PrggMatHeMe()可以返回0,在这种情况下,0个匹配,false将等于相同的结果。

08-26 00:30