0

我只想创建一个函数来检查一个字符串,我想告诉最小和最大字符数。

function check_strict_name($str, $fieldname, $min, $max) {
    $field_errors = array();
    if (preg_match('%^[A-Za-z\.\'\-]{$min, $max}$%', stripslashes(trim($str)))) {
    } else {
        $field_errors[] = $fieldname;
        $field_errors[] = "Info not accepted"; 
    }    
    return $field_errors;   
}

如果我用它替换{$min, $max}{2, 25}可以正常工作,但我希望能够在调用函数时告诉这些数字。我想我理解它为什么不起作用,因为 $-sign 结束了表达式,但我不知道如何用有效的{$min, $max}东西替换它。

4

1 回答 1

1

正则表达式中不允许使用这种语法。尝试这个:

if (preg_match('/^[A-Za-z\.\'\-]{' . $min . ',' . $max . '}$/', ... 

或者

if (preg_match(sprintf('/^[A-Za-z\.\'\-]{%d,%d}$/', $min, $max), ... 
于 2012-12-29T06:55:40.547 回答