Я пытался использовать preg_match с "/^[a-zA-Z0-9_-]+$/"
, пытаясь удостовериться, что указанная строка содержит только символы и ничего больше, но, похоже, что счетчик $ не рассчитывается должным образом, чтобы он полностью соответствовалконец строки, но это требует совпадения в начале строки, используя ^.
Если я использую {3,}
вместо +
: "/^[a-zA-Z0-9_-]{3,}$/"
, как было у меня вначале,Я мог бы написать 3 буквы / цифры, - или _, а затем любой символ, отличный от этих, и он считался бы совпадением.
код:
if(preg_match("/^[a-zA-Z0-9_-]+$/", $value, $arr) && strlen($value) > 3)
{
echo $good .' Ok';
}
else
{
echo $bad .' Invalid username. (letters & numbers only)';
}
, используя такие вещи, как$ value, он говорит мне, что все в порядке, когда он должен показываться как недопустимое имя пользователя из-за пробела или символов &.
слово слово
слово & слово
И оказалось, что это потому, что значения отправлялись на страницу через $ _GET, а $ value чего-то такого, как «слово и слово», вместо этого называлось «слово» ... есть ли способ это исправить?