1

我在 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

谢谢

4

2 回答 2

2

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

preg_match ( string $pattern , string $TestString) 详细看这里

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

例如,模式:

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

将是从 start^到 end的整个字符串$。4 位,连字符,4 位,连字符,4 到 5 位。

在 Regexr 上查看

更新:

我将D修饰符添加到末尾,否则$不仅匹配到字符串的末尾,而且还匹配到换行符之前作为字符串中的最后一个字符。有关 php 修饰符的详细信息,请参见此处

于 2011-09-13T11:39:12.763 回答
0

将正则表达式与preg_match(). 或者,您也可以使用sscanf()来根据格式解析来自字符串的输入。

于 2011-09-13T11:19:42.623 回答