我在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
由于
答案 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位数。
<强>更新强>
我将D
修饰符添加到结尾,否则$
不仅匹配字符串的结尾,而且还在换行符之前作为字符串中的最后一个字符。 See here for php modifiers in detail
答案 1 :(得分:0)
使用带有preg_match()
的正则表达式。或者,您也可以使用sscanf()
根据格式解析字符串中的输入。