CI 验证带有特殊字符的请求
CI Validate request with special characters
我正在使用代码启动器框架。
如何验证接受字母、数字和特殊字符的请求。(space、逗号、破折号和正斜杠)
示例:
控制器
$this->form_validation->set_rules('address', 'Address', 'required|xss_clean|custom_alpha_numeric');
MY_Form_validation.php
public function custom_alpha_numeric($str)
{
$valid = (!preg_match("/^[a-z0-9 .,-\-]+$/i", $str)) ? FALSE : TRUE;
return $valid;
}
有没有办法在我的验证中接受正斜杠?
如果您需要在正则表达式中搜索具有特殊含义的元字符,则需要escape that character。您使用 \
转义字符,因此:
preg_match("/^[a-z0-9 .,-\-\/]+$/i", $str)
事实上,您已经为 -
做了同样的事情,因为在 []
中,该字符具有特殊含义(表示一个范围),而您想要显式匹配该特定字符。我认为您应该删除其中的其他 -
?
preg_match("/^[a-z0-9 .,\-\/]+$/i", $str)
或者,另一种选择是使用 /
以外的东西作为分隔符。 From the docs:
A delimiter can be any non-alphanumeric, non-backslash, non-whitespace character.
如果您使用不同的定界符,斜杠将变成另一个字符。因此,例如使用 #
:
preg_match("#^[a-z0-9 .,\-/]+$#i", $str)
我正在使用代码启动器框架。
如何验证接受字母、数字和特殊字符的请求。(space、逗号、破折号和正斜杠)
示例:
控制器
$this->form_validation->set_rules('address', 'Address', 'required|xss_clean|custom_alpha_numeric');
MY_Form_validation.php
public function custom_alpha_numeric($str)
{
$valid = (!preg_match("/^[a-z0-9 .,-\-]+$/i", $str)) ? FALSE : TRUE;
return $valid;
}
有没有办法在我的验证中接受正斜杠?
如果您需要在正则表达式中搜索具有特殊含义的元字符,则需要escape that character。您使用 \
转义字符,因此:
preg_match("/^[a-z0-9 .,-\-\/]+$/i", $str)
事实上,您已经为 -
做了同样的事情,因为在 []
中,该字符具有特殊含义(表示一个范围),而您想要显式匹配该特定字符。我认为您应该删除其中的其他 -
?
preg_match("/^[a-z0-9 .,\-\/]+$/i", $str)
或者,另一种选择是使用 /
以外的东西作为分隔符。 From the docs:
A delimiter can be any non-alphanumeric, non-backslash, non-whitespace character.
如果您使用不同的定界符,斜杠将变成另一个字符。因此,例如使用 #
:
preg_match("#^[a-z0-9 .,\-/]+$#i", $str)