Php Sanitize和Validate表单,包含一些字符异常

时间:2011-09-13 11:15:45

标签: php regex validation sanitize

我在Php Sanitize和Validate Filters中使用但是我在添加一些规则方面遇到了问题,我对php有一些基本知识,所以我觉得这个问题很容易。

if ($_POST['ccp_n'] != "") {
            $ccp = filter_var($_POST['ccp_n'], FILTER_SANITIZE_NUMBER_INT);
            if (!filter_var($ccp, FILTER_VALIDATE_INT)) {
                $errors .= 'Insert a valid code.<br/>';
            }
        } else {
            $errors .= 'Insert a code.<br/>';
        }

我需要添加最小和最大字符数(14-15)并且我想接受这个字符( - 或空格)。确切的顺序是0000-0000-0000(最后四位数也可以是5

由于

2 个答案:

答案 0 :(得分:2)

您可以使用preg_match并应用正则表达式。

preg_match ( string $pattern , string $TestString) See here in detail

模式是问题所在。您需要详细定义允许的内容。

例如,模式:

'~^\d{4}-\d{4}-\d{4,5}$~D'

将是从开始^到结束$的整个字符串。 4位数,连字符,4位数,连字符,4到5位数。

查看here on Regexr

<强>更新

我将D修饰符添加到结尾,否则$不仅匹配字符串的结尾,而且还在换行符之前作为字符串中的最后一个字符。 See here for php modifiers in detail

答案 1 :(得分:0)

使用带有preg_match()的正则表达式。或者,您也可以使用sscanf()根据格式解析字符串中的输入。