Программирование - это просто
Advertisement
Главная arrow C#, Delphi, VB, F#, Web и пр. arrow Web-программирование arrow Уроки Java Script arrow WEB-программирование. "Java Script(JS): Регулярные выражение. Продолжение-2".
20.09.2018 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, Web и пр.
Искусственный интеллект
Услуги
Ча. Во. (FAQ)
Платный раздел
Наука для чайников
Разное
Размышления
Карта сайта
Друзья сайта
Excel-это не сложно
Все о финансах
WEB-программирование. "Java Script(JS): Регулярные выражение. Продолжение-2". Печать E-mail
Автор megabax   
23.06.2018 г.
Урок 13. Управление шрифтами в CSS New Page 1

WEB-программирование. "Java Script(JS): Регулярные выражение. Продолжение-2".

Продолжаем изучать регулярные выражения. На уроке WEB-Программирование: "Java Script(JS): Регулярные выражения. Метасимволы. Продолжение" мы закончили тему метасимволов. Сейчас займемся работой с регулярными выражениями. Мы уже изучили метод test() объекта регулярных выражений. Еще есть search. Если первый просто выдает true или false, в зависимости от того, соответствует или нет строка регулярному выражению, то второй метод возвращает позицию соответствующей строки.  Проиллюстрируем работу и того и другого.

Пример проверки адреса электронной почты:

 

<html>

    <head>

        <meta charset="UTF-8">

        <title>Урок 127. Java Script (JS): Работа с регулярными выражениями</title>

        <SCRIPT Language="JavaScript" type="text/javascript" src="myapp.js">

        </SCRIPT>      

        <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">      

            function isEmail() {

                item=document.myform.email

                var str=item.value;

                var re=/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;

                if(!re.test(str))

                {

                    alert("Неверно введен email");

                    item.focus();

                    item.select();

                }

            }          

        </SCRIPT>

    </head>

    <body>

        <form name="myform" method="GET">

            <input type="button" value="OK" name="ok" ONCLICK="return isEmail()">

            <input type="text" name="email">

        </form>

    </body>

</html>

 

Испытаем его, введя верный емайл, например:  Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script . Программа ничего не ответит (все правильно). А теперь сдаем ошибку, например, забудем поставить .ru, введем два знака "@", либо запрещенный символ, или еще что-то вроде этого, и получим сообщение об ошибке.

Теперь разберем это выражение более подробно. Сначала у нас идет \w- в квадратных скобках. Символа "\w", как вы помните, это буква, цифра или знак подчеркивания. Знак "-" обознает интервал. В принципе, можно смело написать и так /^[\w]+(\.[\w]+)*@([\w]+\.)+[a-zA-Z]{2,7}$/, ничего не изменится. Этот знак у нас в квадратных скобках после него идет модификатор +, обозначающий, что таких знаков должно быть один или больше. То есть, выражение типа "@rambler.ru" где пропущено имя почты, уже не пройдет через жтот фильтр.

Затем у нас идет группа (\.[\w-]+) - может быть точка и буквы после нее (но не несколько точек подряд!). То есть, верным окажется, например, такой email: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script '; document.write( '' ); document.write( addy_text3139 ); document.write( '<\/a>' ); //-->\n Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script ?, а вот такой Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script - уже ошибка. Что характерно, и с точки емайл тоже не может начинаться - не пройдет по первому фильтру. У группы значок "*", который означает, что данная группа может встречаться 0 или любое число раз. То есть, точки могут и отсутствовать. 

Потом в емайле должен стоять знак "@" - он у нас обозначен явно. Затем снова та же конструкция "([\w]+\.)+" для ввода доменного имени (сколь угодно повторений комбинаций из символов и точек), затем обязательно точка и домен не менее чем из двух букв, но не более, чем из семи  - "[a-zA-Z]{2,7}"

Еще один примерщик, проверка идентификаторов переменных, которые могу начинаться только с буквы или знака "_", но далее могут идти буквы, цифры и знаки "_":

<html>

    <head>

        <meta charset="UTF-8">

        <title>Урок 127. Java Script (JS): Работа с регулярными выражениями</title>

        <SCRIPT Language="JavaScript" type="text/javascript" src="myapp.js">

        </SCRIPT>      

        <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">      

            function isVar() {

                item=document.myform.email

                var str=item.value;

                var re=/^[\a-zA-Z_]+[\w]*$/;

                if(!re.test(str))

                {

                    alert("Неверно введен идентификатор переменной");

                    item.focus();

                    item.select();

                }

            }          

        </SCRIPT>

    </head>

    <body>

        <form name="myform" method="GET">

            <input type="button" value="OK" name="ok" ONCLICK="return isVar()">

            <input type="text" name="email">

        </form>

    </body>

</html>

 

 

Добавить комментарий


Защитный код
Обновить

« След.   Пред. »
 
© 2018 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше