Php清理和验证带有一些字符异常的表单


Php Sanitize and Validate form with some character exceptions

我在Php中使用消毒和验证过滤器,但我有一些问题要添加一些规则,我有一些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)

谢谢

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

preg_match ( string $pattern , string $TestString)详见此处

模式是问题所在。你需要详细定义什么是允许的。

例如,模式:

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

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

查看Regexr

更新:

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

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