我想验证多个正则表达式模式。 我的模式是
pattern1: /^4[0-9]{12}(?:[0-9]{3})?$/
pattern2: /^5[1-5][0-9]{14}$/
现在如何在 PHP 中一次性检查这两种模式?
如果您需要同时验证两个正则表达式,您可以执行以下操作:
function preg_match_all($value, ...$patterns){
$valid = true;
foreach($patterns as $pattern){
$valid = $valid && preg_match($pattern, $value)
}
return $valid;
}
preg_match_all('', '/^4[0-9]{12}(?:[0-9]{3})?$/', '/^5[1-5][0-9]{14}$/'); // false
但这并不干净,不要忘记你可以做一些不影响代码可读性的事情(逻辑运算符(
if(preg_match(...) && preg_match(...))
if(preg_match(...) || preg_match(...))
if(preg_match(...) xor preg_match(...))