我想检查包含不需要的字符的字符串。 我想只允许一个只包含@ _ a-z的字符串。 我想如果字符串包含任何东西,除了这个字符将给我一个错误的输出。我想检查一个字符串,如果字符串不包含我期望的字符,它将返回true。
我尝试使用preg_match来做到这一点。但无法做到这一点。我认为preg_match不是我需要的功能。请建议我达到我的愿望目标的最佳方式。
location /server1/ {
proxy_pass http://server1/;
proxy_set_header Host $host;
}
答案 0 :(得分:1)
如果你坚持使用preg_match而不是filter_var,那么试试这个:
/^[a-zA-Z0-9.@_]+$/
编辑添加CD001评论的内容。
答案 1 :(得分:0)
我创建了一个小功能来过滤字符串:
function str_whitelist($string, $whitelist, $strict = false) {
$whitelist = str_split((!$strict ? strtolower($whitelist) : $whitelist));
$stringsplit = str_split($string);
for ($i = 0; $i < count($stringsplit); $i++) {
$string = !in_array((!$strict ? strtolower($stringsplit[$i]) : $stringsplit[$i]), $whitelist, $strict) ? str_replace($stringsplit[$i], '', $string) : $string;
}
return $string;
}
用法:
str_whitelist("Hello123", "ABCDEFGHIJKLMNOPQRSTUVWXYZ") // Output -> Hello