Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Web-программирование - это просто!


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

Новое на сайте Программирование - это просто! (www.easyprog.ru):

В платном разделе

В бесплатном разделе

 

На прошлом уроке мы рассмотрели проверку вводимых значений и остановились на том, что для такой проверки очень хорошо бы использовать регулярные выражения. Что это такое? Это специальные шаблоны, по которому можно проверить строку, а также сделать другие действия. Для начала мы рассмотрим только проверку. Итак, пример проверки ввода числа, в котором допускается точка (одна точка и не сначала):

 

<html>

    <head>

        <meta charset="UTF-8">

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

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

            function validate(form) {

                var str=form.numbers.value;

                var templ=/^[\d]+[.]{0,1}[\d]*$/;

                if(!templ.test(str)) {

                    alert("Введите число!");

                    form.numbers.focus();

                    return false;

                }

                return true;

            }

        </SCRIPT>

    </head>

    <body>

        <form name="myform" method="GET" action="script.html">

            Сюда введите число <input type="text" name="numbers" ONKEYPRESS="return onKeyPress(event)"></input><br>

            <input type="submit" value="OK" name="ok" ONCLICK="return validate(this.form)">

        </form>

    </body>

</html>

 

Итак, если вы попытаетесь ввести не число, то программа выдаст сообщение об ошибке и не даст отправить эти данные скрипту. Как работает эта программа? Вот эта строка:

if(!templ.test(str))

 

проверяет соответствие введенных данных регулярному выражению. А вот само регулярное выражение:

/^[\d]+[.]{0,1}[\d]*$/

 

Кому то оно может показаться страшным. Но не стоит пугаться раньше времени. Давайте разберем его по порядку.

  • /^ - с этого начинается любое регулярное выражение.

  • [\d] - обозначает цифру.

  • + - означает что этот знак повторяется один или более раз.

  • [.] - означает, что тут может стоять только точка.

  • {0,1} - этот знак (в данном случае точка) может повторяться от 0 до 1 раз (либо есть либо нет.

  • Затем у нас повторяется знак [\d], то есть, после точки должна идти цифра.

  • * - означает, что данный знак может повторяться хоть сколько раз или его может не быть вовсе (в отличи от + где хоть один знак обязателен).

Проверка по данном шаблону позволяет ввести только цифры и точку, при чем не на первом месте и всего один раз. То есть, если строка начинается с точки - программа ввести ее не даст. Точно также как и не даст ввести буквы. К сожалению, пользователь может ввести точку в конце, и дальше без цифр. Как быть в этом случае? Остается только считать, что если после точки нет цифр - то это равносильно тому, что после точки только нуль. Если мы сделаем последнюю цифру обязательной для заполнения, то мы не сможем ввести однозначное число, так как у нас уже обязательна для заполнения первая цифра. А первая и последняя - это уже две цифры. Другой выход - сделать обязательной для заполнения еще точку. Тогда однозначное число пользователь сможет ввести например как "7.0". Для этого надо применить вот такой шаблон:

/^[\d]+[.]{1,1}[\d]+$/

 

Итак, подытожим. Мы разобрали пример использования регулярных выражения. В будущих уроках более подробно рассмотрим правила построения шаблонов регулярных выражений, а также изучим некоторые распространенные шаблоны.

 

 

 


В избранное