| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > Обработки строк |
| Автор: Aliance 8.4.2006, 18:58 |
| Всем привет. У меня возникла задача: необходимо проверить введенные пользователем данные в форуме на стороне сервера. • Нужно проверить e-mail на валидность. Не подскажите как? Прочел эти темы: http://forum.vingrad.ru/index.php?showtopic=46596 http://forum.vingrad.ru/index.php?showtopic=55191&st=40 http://forum.vingrad.ru/index.php?showtopic=76143 Там больше спора, чем готового сформулированного ответа :-) Кстати, что вы думаете на счет этого: http://community.livejournal.com/ru_programming/47239.html?mode=reply • нужно проверить дату на правильность. Я так понимаю, что нужно использовать функцию checkdate(), но там аргументы идут не в том порядке (мм, чч, гггг), в котором моя строка. Опять же, видимо, нужно регами строку привести к нужному виду?! Моя строка вида гггг/мм/чч. Хотя при желании могу ее изменить на мм, чч, гггг, имхо, юзерам проще водить не в таком формате. • проверить значение, на содержание в нем только чисел • проверить с помощью регулярок на наличие любого символа в строке Я так понимаю это [\w+] ? |
| Автор: ZlojEzh 8.4.2006, 19:44 | ||||||
| 1) уточни: проверить только представление емейла или точно узнать существует ли такой ящик? 2) если проверять просто формат:
чтоб проверить существование такой даты:
3)
4) можешь не проверять - если она не пустая, то какой-то символ там есть )) вообщем вопрос я не понял )) вариант [\w+] - это вряд ли (означает один символ, образующий слово, или плюс) скорее всего ты имел ввиду [\w]+ - один или более "словесных" символов |
| Автор: ZlojEzh 8.4.2006, 20:23 |
| тот длиннющий регексп для валидации емейла - изврат страшный но именно так он и приведен в каком-то rfc (номер не помню) использовать его для проверки введенных пользователем данных вряд ли стоит сдается мне, что скорость такого рега оставляет желать лучшего а вообще, сколько программеров - столько и вариаций проверки емейла я вот сейчас такой накатал (правда не тестил): #^[\w\d][\w\d_-]*@([\w\d][\w\d\_-]+\.)+[\w\d]{2,4}$# а последний пункт объясни, все таки, по-подробнее а то я совсем вопрос не понял (уж больно меня смутила фраза "наличие любого символа") |
| Автор: CyClon 8.4.2006, 20:28 | ||
Написал, но не проверял. Сервер что-то прилег... Добавлено @ 20:33 Ребята, зачем гонять регулярки для проверки на пустоту строки, если можно воспользоваться strlen? Зачем их гонять для проверки число/не число, если можно использовать is_numeric? |
| Автор: Ciber SLasH 9.4.2006, 00:07 | ||
Вот ещё "мыльный" рег (взял из книжки):
|
| Автор: ZlojEzh 9.4.2006, 00:18 | ||
что-то тут не так... |
| Автор: Ciber SLasH 9.4.2006, 01:00 | ||
| Вот тут хорошие ссылки: http://forum.vingrad.ru/index.php?showtopic=75770 Вот ещё рег (взят со страницы по ссылки и переделан):
|
| Автор: Aliance 9.4.2006, 16:25 |
| ZlojEzh, это значит в строке присутствует любой символ, кроме пробела. Думаю $str !== "" будет достаточно. CyClon, Ciber SLasH, спасибо. пошел тестировать. |
| Автор: ZlojEzh 9.4.2006, 20:07 | ||
| если кроме пробела, то надо делать так
|