Пожалуйста, помогите отчаявшейся девушке составить регулярное выражение для проверки следующего вводимого текста:
1,2,5/3;1/2;1-4/2
или
1-9/3
где числа до знака "/" - это номера страниц какого-то документа. Числа с "-" означает диапазон от и до включительно.
число после "/" - это количество частей, на которые страницу нужно поделить.
Нужна простая проверка правильности введения этого шаблона. Если пользователь введет 1?9/3 или что-то подобное, должно выдаться false.
Заранее большое спасибо!
Спустя 7 минут, 52 секунды (29.06.2010 - 18:35) Winston написал(а):
Так ?
if (!preg_match ("#^(\d,?+|\d\-\d)\/[0-9]+$#"))
echo 'Не верно !';
else
echo 'OK';
Спустя 42 минуты, 34 секунды (29.06.2010 - 19:17) Angelika_S написал(а):
Спасибо большое, но это работает только с
1-5/3, например 1-5/3;1,2/2 то выдает false хотя все правильно
1-5/3, например 1-5/3;1,2/2 то выдает false хотя все правильно
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Спустя 8 минут, 40 секунд (29.06.2010 - 19:26) Winston написал(а):
Вам нужно одно из этих значений: 1-5/3; или 1,2/2, или эти 2 значения вместе вводить ?
Спустя 13 часов, 35 минут, 25 секунд (30.06.2010 - 09:02) Angelika_S написал(а):
Да, вместе. Их может быть несколько через знак ";" в одном поле. Спасибо
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 2 часа, 39 минут (30.06.2010 - 11:41) tomash написал(а):
if (!preg_match ("^((?:\d(?:-|,)\d\/\d){1};(?:\d(?:-|,)\d\/\d){1})+$"))
echo 'Не верно !';
else
echo 'OK';