Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите пожалуйста проверить переменную на число в календаре
 
 автор: sasha_php   (15.07.2011 в 13:55)   письмо автору
 
 

Помогите пожалуйста проверить переменную на число от 1 до 31 (число в календаре), месяц от 01 до 12 (месяц в календаре) и год от 2000 ~ (год в календаре)


$day = ""; / / Число от 1 до 31
Что должно быть в функции $reg = preg_match ("", $day, $matcn);

$mis = ""; / / Число от 01 до 12
Что должно быть в функции $reg = preg_match ("", $mis, $matcn);

$rik = ""; / / Число от 2000 до ~
Что должно быть в функции $reg = preg_match ("", $rik, $matcn);

  Ответить  
 
 автор: cheops   (15.07.2011 в 14:25)   письмо автору
 
   для: sasha_php   (15.07.2011 в 13:55)
 

1. Можно поступить так, но помоему сравнение числа с 1 и 31 будет надежнее
$day = "31"; / / Число от 1 до 31
$reg = preg_match ("|^[1-3]*[0-9]$|", $day, $matcn);

2.
$mis = "02";
$reg = preg_match ("|^[0-1][0-9]$|", $mis, $matcn);

3.
$rik = "";
$reg = preg_match ("|^2[0-9]{3}$|", $rik, $matcn);

  Ответить  
 
 автор: sasha_php   (15.07.2011 в 18:46)   письмо автору
 
   для: cheops   (15.07.2011 в 14:25)
 

Спасибо за подсказку, все получилось

  Ответить  
 
 автор: f111   (16.07.2011 в 17:55)   письмо автору
 
   для: cheops   (15.07.2011 в 14:25)
 

1 вариант 39 не пропустит?
2 аналогично

  Ответить  
 
 автор: cheops   (16.07.2011 в 18:03)   письмо автору
 
   для: f111   (16.07.2011 в 17:55)
 

Пропустит, здесь проверка формы, а не диапазонов. Задача была задействовать именно регулярные выражения, были приведены те выражения, от которых можно начать отталкиваться, если нужно применить именно их. Регулярные выражения - это проверка в первую очередь строк, поэтому проверяется в первую очередь форма вводимых данных, количество и принадлежность к классам символов. Можно усложнить регулярное выражение, чтобы оно точно проверяло диапазоны, но проще по синтаксису и вычислениям просто преобразовать строки к числам и проверить диапазон чисел (если в первую очередь важна форма, и без регулярных выражений не обойтись, хотя тут и со строками не сложно, то вторую проверку по диапазону можно добавить в качестве второго условия в if).

  Ответить  
 
 автор: sasha_php   (17.07.2011 в 10:50)   письмо автору
 
   для: cheops   (16.07.2011 в 18:03)
 

все верно, я так и сделал

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования