PHP - 搜索不需要的字符的字符串
PHP - Search string for unwanted characters
我正在制作注册脚本,我需要保护字符串不受 a-z、A-Z、0-9 和 _ 以外的字符的影响。有没有简单的方法,例如在字符串中搜索不在我的允许字符数组中的字符?
您可以使用正则表达式进行搜索:
preg_match_all('/[^A-Za-z0-9_]/', $string, $matches);
有关详细信息,请参阅 preg_match_all。
基本上您正在搜索指定列表中不存在的字符。匹配项存储在 $matches
中。
如果返回的数组为空,则字符串通过,否则数组包含不允许的字符。
这通常是通过正则表达式完成的,它允许在字符集内进行搜索:
<?php
$input = [
"abcde",
"XXX111XXX",
"o",
"l#QW+E,+???P#WE094<SDF",
"```",
"GGGG#",
"",
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
];
$output = array_filter($input, function($value) {
return preg_match('/^[a-zA-Z0-9]+$/', $value);
});
var_dump($output);
输出显然是:
array(4) {
[0]=>
string(5) "abcde"
[1]=>
string(9) "XXX111XXX"
[2]=>
string(1) "o"
[7]=>
string(62) "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
}
我正在制作注册脚本,我需要保护字符串不受 a-z、A-Z、0-9 和 _ 以外的字符的影响。有没有简单的方法,例如在字符串中搜索不在我的允许字符数组中的字符?
您可以使用正则表达式进行搜索:
preg_match_all('/[^A-Za-z0-9_]/', $string, $matches);
有关详细信息,请参阅 preg_match_all。
基本上您正在搜索指定列表中不存在的字符。匹配项存储在 $matches
中。
如果返回的数组为空,则字符串通过,否则数组包含不允许的字符。
这通常是通过正则表达式完成的,它允许在字符集内进行搜索:
<?php
$input = [
"abcde",
"XXX111XXX",
"o",
"l#QW+E,+???P#WE094<SDF",
"```",
"GGGG#",
"",
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
];
$output = array_filter($input, function($value) {
return preg_match('/^[a-zA-Z0-9]+$/', $value);
});
var_dump($output);
输出显然是:
array(4) {
[0]=>
string(5) "abcde"
[1]=>
string(9) "XXX111XXX"
[2]=>
string(1) "o"
[7]=>
string(62) "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
}