我在PHP中创建一个简单的检查器函数,以在将字符串放入SQL查询之前验证字符串。但我无法从preg_match函数中获得正确的结果。
$myval = "srg845s4hs64f849v8s4b9s4vs4v165";
$tv = preg_match('/[^a-z0-9]/', $myval);
echo $tv;
有时没有任何东西回应源代码,甚至没有错误的值...我希望得到1作为此调用的结果,因为$ myval只包含小写字母数字和数字。 那么在php中是否有任何方法可以使用preg_match函数检测字符串是否仅包含小写字母数字和数字?
答案 0 :(得分:3)
是的,抑扬符超出[]以指示字符串的开头,你可能需要一个星号来允许任意数量的字符,你可能想要一个$结尾来指示字符串的结尾:
$tv = preg_match('/^[a-z0-9]*$/', $myval);
如果你写[^ a-z],它意味着除了a-z之外的任何东西。
答案 1 :(得分:0)
如果你想测试一个字符串是否只包含小写字母数字,我会以这种方式呈现你的代码以获得正确的结果(你写的已经有效):
$myval = "srg845s4hs64f849v8s4b9s4vs4v165";
$tv = preg_match('/[^a-z0-9]/', $myval);
if($tv === 0){
echo "the string only contains lowercase alphanumerics";
}else if($tv === 1){
echo "the string does not only contain lowercase alphanumerics";
}else{
echo "error";
}