Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярое выражение для проверки числа, определение диапазона числа от 1-10 
V
    Опции темы
godvinn
Дата 31.8.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 4.4.2008
Где: possibility of mo ving to Kyiv

Репутация: 1
Всего: 1



Привет всем. Помогите написать регулярное выражение для проверки того что введенное число пользователя является числом и что входит в диапазон от 1-10. smile 


--------------------
Everything happens in life.
user posted image
PM MAIL   Вверх
unicross
Дата 31.8.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Код

$num = (int)$var;
if ($num>0 && $num<11) echo "Норма";
else echo ":(";

PM MAIL WWW   Вверх
Ипатьев
Дата 31.8.2009, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



а обязательно регулярным?
PM MAIL   Вверх
Ипатьев
Дата 31.8.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



unicross, $num="11 друзей Оушена";
PM MAIL   Вверх
unicross
Дата 31.8.2009, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Цитата(Ипатьев @  31.8.2009,  17:42 Найти цитируемый пост)
$num="11 друзей Оушена";

Результат - ":("
Цитата(Ипатьев @  31.8.2009,  17:26 Найти цитируемый пост)
а обязательно регулярным?

Нет проблем...
Код

if (preg_match('#^([1-9]|10)$#s', $var)) echo "Норма";
else echo ":(";


Это сообщение отредактировал(а) unicross - 31.8.2009, 17:00
PM MAIL WWW   Вверх
Ипатьев
Дата 31.8.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



про обязательно регулярным это я автора спросил.
а друзей, конечно, было 9 сначала
PM MAIL   Вверх
NewDima
Дата 31.8.2009, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Ипатьев, жжешь =)
для проверки валидности инта есть пара еще способов:
is_numeric()
а вот это пока не работает, но надеюсь в скором времени будет:
filter_data($num, FILTER_VALIDATE_INT) 
PM ICQ   Вверх
Ипатьев
Дата 31.8.2009, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



is_numeric не подойдет, скажем, для данных из реквеста.
а вот ctype, в отличие от filter, совсем не экспериментальная
PM MAIL   Вверх
bars80080
Дата 31.8.2009, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



а is_numeric(
Цитата(NewDima @  31.8.2009,  17:40 Найти цитируемый пост)
для проверки валидности инта есть пара еще способов:
is_numeric()

Код

$t = 0x333333;
$y = is_numeric($t);
var_dump($y);



по-моему, я уже обращал на это внимание?
PM MAIL WWW   Вверх
NewDima
Дата 31.8.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Код

<?php
function is_valid($ident) {
    return is_numeric($ident) && $ident>0 && $ident<11;
}
var_dump(is_valid('0xA'));
var_dump(is_valid('0xB'));
var_dump(is_valid('0x0'));
var_dump(is_valid('0x10'));
var_dump(is_valid('A'));
var_dump(is_valid('10'));
var_dump(is_valid('11'));
var_dump(is_valid('0x333333'));
var_dump(is_valid(0x333333));
?>

вывод
Код

bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
bool(false)
bool(false)

Что не устраивает?
Шестнадцатиричные числа - тоже числа
PM ICQ   Вверх
Ипатьев
Дата 31.8.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Че-то меня проглючило жестоко.
Перепутал с is_int. Сорри.
PM MAIL   Вверх
bars80080
Дата 31.8.2009, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(NewDima @  31.8.2009,  18:00 Найти цитируемый пост)
Шестнадцатиричные числа - тоже числа 

от 1 до 10, как-то явно настраивает на исключительно десятичный формат
PM MAIL WWW   Вверх
NewDima
Дата 31.8.2009, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



) не спорю, да не суть
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0923 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.