abstract class RuleAbstraction
{
// 匹配模式
private $pattern = null;
// 校验对象
private $subject = null;
public function setSubject($subject) {
$this->subject = $subject;
}
}
class Email extends RuleAbstraction
{
// E-mail正则匹配模式
private $pattern = '/^(?!_|-)(?>[\w\.-]+)@(?!-)(?>((?>[a-zA-Z0-9-]+)\.)+)[a-zA-Z]{2,46}$/';
/**
* 校验EMail地址
*
* @return false|int
*/
public function check()
{
var_dump($this);
return preg_match($this->pattern, $this->subject);
}
}
$obj = new Email();
$obj->setSubject('shuznhi.chen@anlaa.com');
$obj->check();//0
object(RuleEngine\Rules\Email)#9 (3) {
["pattern":"RuleEngine\Rules\Email":private]=>
string(69) "/^(?!_|-)(?>[\w\.-]+)@(?!-)(?>((?>[a-zA-Z0-9-]+)\.)+)[a-zA-Z]{2,46}$/"
["subject":"RuleEngine\Rules\RuleAbstraction":private]=>
string(22) "w12.a/qe_@124afasf.com"
["pattern":"RuleEngine\Rules\RuleAbstraction":private]=>
NULL
}
object(RuleEngine\Rules\Email)#14 (3) {
["pattern":"RuleEngine\Rules\Email":private]=>
string(69) "/^(?!_|-)(?>[\w\.-]+)@(?!-)(?>((?>[a-zA-Z0-9-]+)\.)+)[a-zA-Z]{2,46}$/"
["subject":"RuleEngine\Rules\RuleAbstraction":private]=>
string(22) "shunzhi.chen@anlaa.com"
["pattern":"RuleEngine\Rules\RuleAbstraction":private]=>
NULL
}