解析正则表达式时PHP引发错误

时间:2014-10-26 16:20:46

标签: php regex

我有一个PHP函数来验证电子邮件字段。在我的PHP文件中,我收到以下错误:

Warning: preg_match(): Unknown modifier '_' in C:\xampp\htdocs\validator.inc.php on line 28

我的PHP文件是:

<?php
define("EMAIL_MASK", "^[-!#$%&'*+/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+/0-9=?A-Z^_a-z{|}~])*@[a-zA-Z](-?[a-zA-Z0-9])*(\.[a-zA-Z](-?[a-zA-Z0-9])*)+$");

(...)

function isEmailValid($email)
{
    return !empty($email) && preg_match(EMAIL_MASK, $email); <---- This is the line raising the error
}

(...)

?>

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您未能放置PHP regex delimiters

define("EMAIL_MASK", "~^[-!#$%&'*+/0-9=?A-Z^_a-z{|}\~](\.?[-!#$%&'*+/0-9=?A-Z^_a-z{|}\~])*@[a-zA-Z](-?[a-zA-Z0-9])*(\.[a-zA-Z](-?[a-zA-Z0-9])*)+$~");
                      |                                                                                                                          |