if (preg_match("/^[0-9a-zA-Z]+$/", $var))
/^[0-9a-zA-Z]+$/ はどういう意味?
^ 行頭
[0-9] 数字1文字
[a-z] 小文字のアルファベット1文字
[A-Z] 大文字のアルファベット1文字
+ 1回以上の繰り返し
$ 行末
先頭から最後までアルファベットか数字の文字列ならマッチするという意味?
^は否定の意味もあり、どちらになるのかよく分からない。そこで試してみた。
// 1.全角文字
if (preg_match("/^[0-9a-zA-Z]+$/", "全角文字")) {
echo "OK マッチしました。";
} else {
echo "NG マッチしませんでした。";
}
// 2.記号含む
if (preg_match("/^[0-9a-zA-Z]+$/", "Abc@_*123")) {
echo "OK マッチしました。";
} else {
echo "NG マッチしませんでした。";
}
//3 半角英数字のみ
if (preg_match("/^[0-9a-zA-Z]+$/", "AbcXyz123")) {
echo "OK マッチしました。";
} else {
echo "NG マッチしませんでした。";
}
3がマッチしました。
/^[0-9a-zA-Z]+$/ は語頭から語末までに半角英数字
という意味のようだ。
否定を意味する記号と
語頭を意味する記号が
なぜ同じなのだろう。
分かりにくくてしようがない。
(php 5.4で確認)
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image