1

我正在 PHP 中创建一个简单的检查器函数,以在将字符串放入 SQL 查询之前对其进行验证。但是我无法从 preg_match 函数中得到正确的结果。

$myval = "srg845s4hs64f849v8s4b9s4vs4v165";
$tv = preg_match('/[^a-z0-9]/', $myval);
echo $tv;

有时源代码没有回显,甚至没有错误值......我想得到 1 作为这个调用的结果,因为 $myval 只包含小写字母数字和数字。那么php中有什么方法可以使用preg_match函数检测字符串是否只包含小写字母数字和数字?

4

2 回答 2

3

是的,抑扬符在 [] 之外表示字符串的开头,您可能需要一个星号来允许任意数量的字符,并且您可能希望末尾有一个 $ 来表示字符串的结尾:

$tv = preg_match('/^[a-z0-9]*$/', $myval);

如果你写 [^az] 它意味着除了 az 之外的任何东西。

于 2013-05-11T16:29:14.220 回答
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";
}
于 2013-05-11T16:38:51.537 回答