Примеры JavaScript - Проверка email-адреса с помощью регулярного выражения.

ОГЛАВЛЕНИЕ


Проверка email-адреса с помощью регулярного выражения.

E-mail адрес состоит из двух частей разделенных символом "@": "Имя пользователя" @ "доменное имя". Имя пользователя, мы ограничим символами латинского алфавита (a-z), цифрами (0-9), символом подчеркивания "_", дефисом "-" и точкой "." Причем имя пользователя не может начинаться и заканчиваться точкой. Что касается доменного имени, то оно должно удовлетворять следующим критериям: в доменном имени могут присутствовать символы латинского алфавита, цифры и дефис "-"; домен не должен начинаться или заканчиваться дефисом; домен первого уровня (например, com, org, info, ru и т.д.) состоит только из символов латинского алфавита и ограничен длиной от 2 до 4 (или до 6 (домен museum)) символов.

function isValidEmail (email)
{
 return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}

Ну, и при желании можно ввести ограничения на общую длину. Имя пользователя может быть длиной не более 64 символов, а доменное имя до 255 символов (RFC 2821), а вместо a-z0-9_ указать эквивалентый класс символов \w (что я не сделал в целях наглядности).

Javascript redirect

Javascript redirect, т.е. переадресация javascript делается следующим образом (вставлять в разделе HEAD документа HTML):

<script type="text/javascript">
location.replace("http://www.cyberguru.ru");
</script>

Для того чтобы сделать более универсальный редирект с задержкой пропишите в разделе HEAD документа HTML следующий код:

<script type="text/javascript">

setTimeout('location.replace("http://www.cyberguru.ru")', 3000);
/*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/

</script>

<noscript>

<meta http-equiv="refresh" content="3; url=http://www.cyberguru.ru">

</noscript>

Пояснение. Для универсальности совмещаем два способа: Javascript редирект и redirect html. Для редиректа с задержкой используем функцию setTimeout, а для самого перенаправления используем метод replace, чтобы заменить текщий адрес на новый и тем самым в хистори не оставлять промежуточной страницы. На тот случай если Javascript отключен дублируем перенаправление тэгом META refresh: <meta http-equiv="refresh" content="задержка в секундах до редиректа; url=адрес для редиректа">

Однако по возможности лучше использовать перенаправление с помощью серверного скрипта - PHP redirect или используя возможности самого вэб-сервера, так как meta refresh имеет недостатки, а Javascript у некоторых редких пользователей может быть отключен.