[英]Storing REGEX in array PHP
我正在使用一个数组来存储这样的正则表达式:
private $rules = ['usuario' => ['regexp' => "^(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$", 'length' => ['max'=>'30','min'=>'4']],
'email' => ['length' => ['max'=>'70','min'=>'5']],
'contrasena' => ['length' => ['max'=>'70','min'=>'4']]
];
当我尝试:
echo '/' . $this->rules['usuario']['regexp'] . '/';
我有:
/^(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?
有人可以解释这种行为吗?
原因是正则表达式中有<
符号,在浏览器中它们被解释为标签。 为了避免这种行为,您可以通过htmlspecialchars
来转义此类字符:
echo htmlspecialchars('/' . $this->rules['usuario']['regexp'] . '/');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.