2014-10-26 64 views
-2

我有一个PHP函数来验证电子邮件字段。在我的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

你没有把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])*)+$~"); 
         |                               | 
+1

你需要逃避'〜' – 2014-10-26 16:24:21

+0

@CasimiretHippolyte:还在字符类? – hakre 2014-10-26 16:27:14

+0

@CasimiretHippolyte谢谢.. – 2014-10-26 16:28:56