1

PHP で単純なチェッカー関数を作成して、文字列を SQL クエリに入れる前に検証しています。しかし、preg_match 関数から正しい結果を得ることができません。

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

ソース コードに何もエコーされないこともあり、偽の値でさえありません... $myval には小文字の英数字と数字しか含まれていないため、この呼び出しの結果として 1 を取得したいと考えています。preg_match関数を使用して、文字列に小文字の英数字と数字のみが含まれているかどうかをphpで検出する方法はありますか?

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 に答える