繁体   English   中英

在数组PHP中存储REGEX

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM