我正在尝试使用preg_match验证电子邮件地址..
但是我收到了这个错误..
警告:preg_match():未知修饰符'+'
这是我的代码
preg_match("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", $email, $matches);
有人能告诉我我的正则表达式有什么问题吗?
由于
答案 0 :(得分:2)
使用preg_match
时,需要在正则表达式周围放置分隔符。标准是/
。如果在表达式中使用分隔符,则必须将其转义。
preg_match("/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/", $email, $matches);
你也可以考虑使用
filter_var($email, FILTER_VALIDATE_EMAIL);