|
|
|
| Помогите пожалуйста проверить переменную на число от 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);
|
| |
|
|
|
|
|
|
|
для: 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);
|
| |
|
|
|
|
|
|
|
для: cheops
(15.07.2011 в 14:25)
| | Спасибо за подсказку, все получилось | |
|
|
|
|
|
|
|
для: cheops
(15.07.2011 в 14:25)
| | 1 вариант 39 не пропустит?
2 аналогично | |
|
|
|
|
|
|
|
для: f111
(16.07.2011 в 17:55)
| | Пропустит, здесь проверка формы, а не диапазонов. Задача была задействовать именно регулярные выражения, были приведены те выражения, от которых можно начать отталкиваться, если нужно применить именно их. Регулярные выражения - это проверка в первую очередь строк, поэтому проверяется в первую очередь форма вводимых данных, количество и принадлежность к классам символов. Можно усложнить регулярное выражение, чтобы оно точно проверяло диапазоны, но проще по синтаксису и вычислениям просто преобразовать строки к числам и проверить диапазон чисел (если в первую очередь важна форма, и без регулярных выражений не обойтись, хотя тут и со строками не сложно, то вторую проверку по диапазону можно добавить в качестве второго условия в if). | |
|
|
|
|
|
|
|
для: cheops
(16.07.2011 в 18:03)
| | все верно, я так и сделал | |
|
|
|