То ли праздники удались... то ли наеборот...
Подскажите пожалуйста: как проверить является ли переменная числом от 1 до 999?
1. chiv - 11 Января, 2006 - 14:03:29 - перейти к сообщению
2. Ray Wen - 11 Января, 2006 - 15:02:00 - перейти к сообщению
chiv
CODE:
if($x>0&&$x<1000)
3. Digital man 53 - 11 Января, 2006 - 15:13:40 - перейти к сообщению
if (preg_match("/^\d{1,3}$/",$x))
Так, имхо, краше получится..
Так, имхо, краше получится..
4. Леголегс - 11 Января, 2006 - 16:18:39 - перейти к сообщению
Digital man 53 пишет:
Хм. На вкус и цвет товарищей нет, но оспользовать регэкспы там, где без них можно обойтись не стоит. Оптимизация должна быть хоть какая-то. Кроме того твой вариант совпадает и с нулём. Итого, chiv, не заморачивайся, пиши как Ray Wen подсказал.Так, имхо, краше получится..
5. Digital man 53 - 11 Января, 2006 - 16:53:30 - перейти к сообщению
Черт, про нолик то я забыл Просто имхо 1 регэксп вместо двух сравнений теоретически может и выиграть.
ЗЫ: я могу обойтись без регэкспов почти в любой ситуации, но только код будет очень-очень громоздким
ЗЫ: я могу обойтись без регэкспов почти в любой ситуации, но только код будет очень-очень громоздким
6. chiv - 12 Января, 2006 - 06:17:03 - перейти к сообщению
Спасибо!
А почему не срабатывает обратная проверка:
если переменная является строкой?
А почему не срабатывает обратная проверка:
CODE:
if($x<0||$x>999)
если переменная является строкой?
7. ETC - 12 Января, 2006 - 07:03:00 - перейти к сообщению
chiv
добавь
перед сравнением...
добавь
CODE:
x = Number(x);
перед сравнением...
8. chiv - 12 Января, 2006 - 09:03:19 - перейти к сообщению
Спасибо!!!