Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов




НазваниеЛекция 2-07 12. Создание пользовательских объектов и экземпляров объектов
страница4/10
Дата публикации15.03.2013
Размер1.04 Mb.
ТипЛекция
uchebilka.ru > Астрономия > Лекция
1   2   3   4   5   6   7   8   9   10
^

4.4.14. Регулярные выражения в JavaScript


Функции работы с подстроками позволяют выполнить операции поиска подстрок в строке и замены подстрок в строке. Однако при работе с данными часто приходится выполнять операции поиска и замены по довольно сложным алгоритмам, например, найти первое вхождение цифры в строке. Хотя такие операции можно выполнить, используя функции работы со строками, условные операторы и операторы цикла, существует более удобный способ решения подобного рода задач – использование регулярных выражений.

Впервые регулярные выражения стали использоваться в командном интерпретаторе и утилитах операционной системы Unix. Первым языком программирования, в который были введены средства работы с регулярными выражениями, стал язык Perl.

В последние версии языка JavaScript также введены средства работы с регулярными выражениями.

Помимо Perl и JavaScript, возможность использования регулярных выражений появилась в последних версиях языков Java, VBScript и PHP. Средства работы с регулярными выражениями в этих языках практически совпадают, поэтому рассматриваемый ниже материал может быть использован при написании программ или сценариев с использованием этих языков.

Регулярные выражения используются для решения следующих задач:

  • проверки данных на наличие некоторой последовательности данных, заданных с помощью определенного образца, называемого шаблоном (pattern);

  • замены или удаления данных.

Регулярные выражения часто используются в программах для проверки вводимых данных, которые должны иметь определенный формат, например, телефоны или адреса электронной почты.
^

4.4.14.1. Объект Regular Expression


Объект Regular Expression содержит шаблон, а также опции, которые используются при поиске строки. Объект может быть создан одним из двух способов:

var имя-переменной = /шаблон/ [опции]

или

var имя-переменной = new RegExp("шаблон"[,"опции "]).

В первом случае объект для заданного шаблона создается напрямую.

Во втором случае создание объекта выполняется с помощью создания экземпляра встроенного объекта RegExp, рассматриваемого в следующем разделе.

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

Необязательный параметр опции содержит следующие опции:

  • g – глобальный поиск;

  • i – поиск без учета регистра символов;

  • m – поиск в нескольких строках.

Глобальный поиск предполагает поиск всех соответствий шаблону в строке (по умолчанию выполняется поиск только первого соответствия).

^ Поиск без учета регистра символов означает, что регистр символов в шаблоне игнорируется, т.е. строки "поиск", "Поиск" и "ПОИСК" будут соответствовать шаблону "поиск" (по умолчанию шаблону будет соответствовать только первая строка).

Поиск соответствий шаблону для шаблонов, зависящих от положения в строке (в начале или в конце строки), выполняется во всех строках внутри строки (по умолчанию такой поиск выполняется только в первой строке). Строки внутри строки задаются с помощью символа "\n".

В параметре опции могут быть заданы одна или несколько из перечисленных опций в любом порядке как строка символов (без пробелов и запятых между опциями).

Перед использованием параметр шаблон преобразуется во внутренний формат. При использовании первого способа такое преобразование выполняется при загрузке сценария, поэтому первый способ используется, когда известно, что шаблон не будет меняться во время работы сценария. Если же шаблон является динамическим, т.е. может изменяться в процессе выполнения сценария, то используется второй способ, поскольку при его использовании шаблон загружается либо непосредственно перед его выполнением, либо при вызове метода compile().
Пример 4.4.73. Создание объекта для шаблона:

1. var re1 = /abc/i;

Переменная re1 задает поиск или замену для шаблона /abc/ без учета регистра, т.е. такое задание эквивалентно заданию группы следующих шаблонов: "abc", "ABC", "abC", "aBC", "aBc", "Abc", "ABc" и "AbC".

2.  var re2 = new RegExp("34","g");

Переменная re2 задает поиск или замену для всех соответствий шаблону /34/ в строке.
Объект Regular Expression имеет следующие свойства:

  • global, ignoreCase и multiline – возвращает соответственно состояние опций g, i и m (включена – true или выключена – false) (только для чтения);

  • source – содержит копию строки шаблона регулярного выражения (только для чтения);

  • lastIndex – возвращает позицию того символа в строке, с которой начнется следующий поиск соответствия исходной строки шаблону или -1, если соответствие не найдено (это свойство можно изменять с помощью функций exec() и test() объекта Regular Expression, а также с помощью функций match(), replace() и split() встроенного объекта String).


Пример 4.4.74. Использование свойств объекта Regular Expression:

Следующий фрагмент сценария:

// Вывод свойств re1

alert("re1.global=" + re1.global +

"\nre1.multiline=" + re1.multiline +

"\nre1.ignoreCase=" + re1.ignoreCase +

"\nre1.source='" + re1.source + "'");

// Вывод свойств re2

alert("re2.global=" + re2.global +

"\nre2.multiline=" + re2.multiline +

"\nre2.ignoreCase=" + re2.ignoreCase +

"\nre2.source='" + re2.source + "'");

выводит свойства объявленных в примере 4.4.73 переменных re1 и re2:







Объект Regular Expression содержит также три встроенные функции: test(), exec() и compile().

Функция

test(строка)

возвращает true, если шаблон объекта Regular Expression содержится в строке и false – в противном случае.
Пример 4.4.75. Использование функции test()объекта Regular Expression:

re3 = /Internet/g; // Шаблон глобального поиска

// Поиск слова Internet в первой строке

isEnglishWord = re3.test("Технологии Internet (обзор)");

// Вывод значения переменной isEnglishWord

// и значения свойства lastIndex

alert("isEnglishWord=" + isEnglishWord +

"\nre3.lastIndex=" + re3.lastIndex);

// Поиск слова Internet во второй строке

isRussianWord = re3.test("Технологии Интернет (обзор)");

// Вывод значения переменной isRussianWord

// и значения свойства lastIndex

alert("isRussianWord=" + isRussianWord +

"\nre3.lastIndex=" + re3.lastIndex);

re3_1 = /Internet/; // Шаблон одиночного поиска

// Поиск слова Internet в первой строке

isEnglishWord = re3_1.test("Технологии Internet (обзор)");

// Вывод значения переменной isEnglishWord

// и значения свойства lastIndex

alert("isEnglishWord=" + isEnglishWord +

"\nre3_1.lastIndex=" + re3_1.lastIndex);

Вывод этого фрагмента сценария будет иметь следующий вид:















(в Internet Explorer)

(в Firefox и других Web-браузерах)

Если в шаблоне установлен глобальный поиск (опция g), то в случае, если шаблон объекта найден в строке, свойство lastIndex содержит значение индекса символа, следующего за найденным шаблоном (пробела после слова Internet). Если шаблон не найден, свойство lastIndex содержит значение. Если опция g для шаблона не установлена, значение lastIndex всегда равно 0 для всех Web-браузеров, кроме Internet Explorer.

Функция

exec(строка)

выполняет поиск в строке с использованием шаблона. Если шаблон, не найден в строке, функция возвращает значение null. В противном случае функция возвращает переменную, содержащую результат поиска соответствия шаблону. Если в шаблоне поиска установлена опция g, то каждый следующий поиск начинается с позиции в строке, соответствующей текущему значению свойства lastIndex, в противном случае каждый поиск начинается с начала строки.

Возвращаемое функцией в результате поиска значение имеет два свойства: свойство index, содержащее позицию начала найденного соответствия шаблону (первая позиция в строке равна 0) и свойство input, содержащее исходную строку, в которой производится поиск.
Пример 4.4.76. Использование функции exec()объекта Regular Expression:

// Исходная строка

inputString = "Компьютерная сеть - это компьютеры, " +

"связное оборудование и каналы связи.";

// Определение шаблона

var re4 = /компьютер/gi;

// Первый вызов exec()

var reArray = re4.exec(inputString);

// Вывод свойства input для результата

alert("Исходная строка='" + reArray.input +"'");

// Объявление переменной цикла

var i;

// Поиск всех соответствий шаблону в цикле

for (i = 0;reArray != null;i++)

{

// Вывод текущих значений

// свойств index и lastIndex результата

alert("index[" + i + "]=" + re4.index +

" lastIndex[" + i + "]=" + re4.lastIndex +

" result[" + i + "]='" + reArray + "'");

// Следующие вызовы exec()

reArray = re4.exec(inputString);

}

// Вывод количества вхождений

// строки шаблона в исходной строке

alert("Количество вхождений строки '" + re4.source +

"' равно " + i);

В результате работы фрагмента на экран будут выведены следующие сообщения:










^ Функция

compile("шаблон"[,"опции "])

преобразует шаблон во внутренний формат для более быстрого выполнения с использованием заданных опций. Эта функция обычно используется, когда поиск соответствий шаблону выполняется в цикле и шаблон во время выполнения цикла не меняется.
Пример 4.4.77. Использование функции compile() объекта Regular Expression:

Пример использования функции compile().

Если в примере 4.4.75 после определения шаблона re4 добавить предложение

// Компиляция шаблона

re4.compile("компьютер", "ig");

то цикл поиска соответствий шаблону в строке будет выполняться быстрее.
1   2   3   4   5   6   7   8   9   10

Похожие:

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛекция №4 создание символов и работа с эффектами в adobe flash
Создание документа (размеры, цвет фона, частота кадров). Выравнивание объектов в документе

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconРешение городского Совета о включении в перечень объектов, подлежащих приватизации
Дополнения к Перечню объектов коммунальной собственности, включенных в перечни объектов

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconРешение №12/1 от 25. 01. 07 (пятый созыв двенадцатая сессия) "Отчет...
Ия 17 объектов коммунальной собственности. С учетом 6-и объектов, переходящих из Перечня объектов, подлежащих приватизации в 2005...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛабораторная работа №3 Тема: Изучение основ параметрической анимации в 3d studio max
Цель работы: Изучить основные виды и способы анимации параметров объектов в 3d studio max: анимация по ключевым кадрам, анимация...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconОценка эффективности инвестиций в недвижимости
В отличие от финансовых инвестиций, недвижимость имеет явно выраженную материальную форму, более высокий уровень защиты от инфляции,...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconЛекция 5 Тема: Элементы окна программы компас-3D, управление изображением...
Анализируя свойства этих простых трехмерных геометрических объектов можно сделать вывод о том, что форма каждого из них имеет свои...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconИнспектор ип «gsg украйна»
Инспектирование грузов и объектов (Агро сектор, Металлургия). Управление залоговым хранением. Техническое инспектирование объектов...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconПрограмма ArCon проста и удобна в освоении и использовании. Вы научитесь...
Многократное копирование элементов и объектов. Полукруглые, круглые стены с возможностью редактирования. Загрузка объектов в режиме...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconДиаграммы объектов
Диаграммы объектов применяют при моделировании статических видов системы с точки зрения проектирования и процессов. При этом моделируется...

Лекция 2-07 12. Создание пользовательских объектов и экземпляров объектов iconОбщие положения
Целью Программы является создание банка данных для обеспечения органов исполнительной власти полноразмерными копиями документов и...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<