Forum Webscript.Ru
Программирование => Регулярные выражения => Тема начата: chakra от 02 Мая 2005, 13:30:13
-
[OFF]Прочитала все мануалы, пресмотрела кучу сайтов с примерами, ну не дружу я с РВ. А надо :( [/OFF]
В поле вводится 10 символов. Надо проверить, дата ли это. Максимум, что я поняла, так это то, что проверить формат, надо написать такое правило:
(\\d\\d).(\\d\\d).(\\d{4}) это на DD.MM.YYYY
Но как проверить, чтобы DD было не больше 31, а ММ не больше 12 не могу придумать :(
-
во-первых, этот шаблон пропустит дату вида 01ё10ы2005
во-вторых, гораздо проще не париться с регуляркой, а использовать [p]checkdate[/p], если язык - пхп. Впрочем, в перле тнавернякак есть что-то подобное
в-третьих, если так уж хочется регуляркой, то надо использовать оператор ИЛИ
типа (1[0-2]|0[1-9])
-
1. упс...
2. я бы рада, но это ЯваСкрипт, увы, надо перехватить значение из поля ввода. Если после субмита поле просто сбрасывается, тестировщикам это не нравится. Надо выдать сообщение и поругать.
3. спасибо! кажется, поняла как это строить!
-
chakra:
Если после субмита поле просто сбрасывается, тестировщикам это не нравится. Надо выдать сообщение и поругать.
Не понял, а это здесь при чём?
Когда поле сбрасывается, это не только тестировщикам не нравится. мне, например, тоже. Но кто мешает после сабмита и вывести и поругать?
-
RomikChef:
Но кто мешает после сабмита и вывести и поругать?
После сабмита ява сбрасывает это поле и не дает проверить правильность его заполнения. Но оно также может быть пустым - поле не обязательное - посему понять, это сброшенная ошибка или же просто пустое поле нельзя со стороны основоного скрипта. Поэтому приходится перехватывать на onChange()
-
Не понял, при чём здесь ява? Что значит - сбрасывает? Лезет в это поле, и стирает то, что в нём было, что ли?
Почему клиентским скриптом понять можно, а серверным - неьлзя? Не вижу логики.
-
Потому что весь интерфейс написан на яве с помощью АйБиэМовского программпродукта Rational Rapid Developer.
Почему сбрасывает, не знаю. Но когда вызывается метод по кнопке Субмит для обработки формы, в поле даты, если она введена не правильно, пусто.
-
Вот, в результате получилось это:
var reg=/(0[1-9]|1[0-9]|2[0-9]|3[0-1])[.](1[0-2]|0[1-9])[.](19[0-9][0-9]|20[0-9][0-9])/
RomikChef, спасибо за хорошую основу для роста!
-
chakra:
когда вызывается метод по кнопке Субмит для обработки формы, в поле даты, если она введена не правильно, пусто.
Вообще-то, эта проблема - возврат пустых значений, не имеет отношения к проверке даты.
А если какая-то другая проверка на сервере не пройдёт? Дата всё равно окажется пустой? может быть, делать всё-таки, по-человечески?
-
может быть, делать всё-таки, по-человечески?
по-человечески нельзя, увы. Ибо политика фирмы - использовать вышеупомянутый программный продукт. А этот продукт и отсекает сам дату, если она не правильно введена, и он нам подает уже пустое поле. Посему программистам приходится писать все неизвестно как :(
-
chakra:
Ибо политика фирмы - использовать вышеупомянутый программный продукт
Очень интересно. А вы не можете сказать, что за систему вы разрабатываете на Rapid Developer? Я бы тогда ссылочку для всеобщего обозрения поставил на http://shmakov.ru/
Ну а если не хотите, чтобы все знали, тогда мне хоть по секрету скажите :) на sergey /собачка/ shmakov.ru
-
Вы лучше скажите, почему ваша система не заполняет Value при ошибке?
-
RomikChef:
Вы лучше скажите, почему ваша система не заполняет Value при ошибке?
Предположу, что этот RD проверяет полученную форму сначала сам в runtime библиотеке соответствие введенного значения типу переменной, и только потом вызывает Validate, который написал программист. А когда пользователю показывается форма на экране, то RD заполняет ее сохраненными в переменных значениями. Тут и оказывается, что неправильная дата не сохранилась, т.е. и показать ему нечего.
-
SSH, могу сказать. Это банковская система исключительно для внутреннего пользования. Так что показать ее нет ни малейшей возможности.
SSH:
Тут и оказывается, что неправильная дата не сохранилась, т.е. и показать ему нечего.
именно так.