| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Регулярный выражения |
| Автор: Alx 4.3.2004, 19:07 |
| пишу: var str = new String("string"); res = str.match("str.ng"); if (res != null) alert (res) else alert ("no") выводит alert "string"; res = str.match("str[a-z]ng"); или res = str.match("str\wng"); "no"! В чём дело?! |
| Автор: Gold Dragon 5.3.2004, 09:42 |
| У меня str.match("str.ng") даёт - string str.match("str[a-z]ng") даёт - string а вот с \w - по идее все нормально, но str.match("str\wng") даёт - null |
| Автор: Alx 5.3.2004, 11:10 |
| мне нужен скрипт, опроеделяющий является ли value поля email е-мейлом. Вот рег. выраж. /(\w+)@([\w\._]+)/ возвращает null!! я вот тока не понял, что после @ - набор символов - буква, цифра или подчёркивание, точка, а что такое "_" и где здесь домен первого уровня? (.ru, .com и т.д.) ЗЫ т.к. я его не нашёл, то пробовал даже alexandro@yandex - всё равно null! |
| Автор: GoodBoy 5.3.2004, 12:15 | ||
будет работать для адресов НЕ содержащих русских символов. |
| Автор: GoodBoy 5.3.2004, 12:16 | ||
Извините... Опять слэши съелись...
|
| Автор: Alx 5.3.2004, 15:12 |
| GoodBoy спасибо большое! |
| Автор: GoodBoy 5.3.2004, 15:40 |
| ALEXANDRO Есси чо - абращяйсси!!!!!! :-)))))) |
| Автор: Sardar 5.3.2004, 16:58 | ||||
Локалхост не поймает и IP адрес тоже. Да и вообще такое пропустит privet [email protected] Я бы так сделал:
А если действительно на валидность надо проверять, то выполнять это надо на сервере. |
| Автор: GoodBoy 5.3.2004, 17:45 | ||
| Sardar твой privet [email protected] не пропустит, т.к. там есть пробельный символ... Про 0-9 ты прав. Я забыл... Но у тебя не учитывается возможность присутствия символа "." в имени ящика. Т. е. адрес типа [email protected] не пройдет. Опять же зачем возможность присутствия пробельных символов в начале и в конце регэкспа? И цифр в названии доменной зоны? Зоны типа .ru13 я не знаю... :-)))) Все-таки, на мой взгляд такое выражение более правильно:
|
| Автор: Sardar 5.3.2004, 18:20 | ||||||||||
Пропустит, т.к. найдется [email protected], что будет означать true и строка целиком примится как адрес.
Зоны можно было вручную перечислит, но не хотелось, потому все в кучу
Да, точку надо добавить, а вообще лучше RFC по URL'ам найти и точно посмотреть допустимые символы.
Многоточие все равно пройдет, IP допущен не будет. Слеш перед собакой не нужен. Вообще нужно покопатся в доке, либо взять готовый рег из PHP скриптов(где то на phpdetail.phpclub.ru лежит). |
| Автор: GoodBoy 5.3.2004, 19:07 | ||||
Это почему же IP допущен не будет?? Этот вариант [a-zA-Z0-9.-]+ предполагает наличие произвольного количества букв, цифр и точек! Многоточие пройдет, согласен, но от этого можно избавиться так:
Здесь будут учтены и IP адреса (хотя я не знаю людей, которые бу указывали в своем мыле адрес а не доменное имя), и отсечена возможность использования многоточия, и недопустима длина доменной зоны меньше 2 и больше 4 символов (по-моему сейчас это именно так .ru, .com, .info). А насчет слешей перед собакой... Лучше перебдеть, чем недобдеть... :-)))))))))))))) |
| Автор: Alx 5.3.2004, 20:42 |
| дык эт вам спасибо! |
| Автор: Gold Dragon 6.3.2004, 11:37 |
| Адрес должен соответсвовать следующим условиям: 1. Отрезаем пробелы в начале и в конце 2. Проверяем наличие [@] 3. Проверяем символы до [@] - [a-z],[A-Z],[0-9],[-],[_] (минимум один) (Точно не знаю допустимо ли начинать адрес с [-] или [_]) 5. Проверяем после [@] обязательное наличие [.] 6. Проверяем после [@] символы - [a-z],[A-Z],[0-9],[-],[_] 7. Проверяем символ после [@] - [a-z],[A-Z],[0-9] 8. Проверяем наличие два символа [.] подряд 9. Проверяем наличие хотя бы одного символа между [@] и [.] 10. Проверяем наличие хотя бы одного символа после [.] |
| Автор: Sardar 6.3.2004, 16:06 | ||
Вот чуть построже:
Я не помню, может ли поддомен начинатся с цифры. Только что попробовал найти точный синтаксис мыла - нашел RFC822 - огроменный запутанный текст, BNF грамматики раскиданны по всему документу, на мой взгляд это хороший пример плохой документации. |
| Автор: nikolin 7.3.2004, 09:21 | ||
|