Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

Описание

Метод

match
ищет в строке соответствия шаблону, определяемому выражением regexp. Поведение этого метода существенно зависит от того, установлен атрибут «g» в regexp или нет (регулярные выражения подробно рассмотрены в главе 10).

Если в regexp нет атрибута «g»,

match
ищет одно соответствие в строке. Если соответствие не найдено,
match
возвращает null. В противном случае метод возвращает массив, содержащий информацию о найденном соответствии. Элемент массива с индексом 0 содержит найденный текст. Оставшиеся элементы содержат текст, соответствующий всем подвыражениям внутри регулярного выражения. В дополнение к этим обычным элементам массива возвращаемый массив имеет еще два объектных свойства. Свойство
index
массива указывает позицию начала найденного текста внутри строки. Кроме того, свойство
input
возвращаемого массива содержит ссылку на саму строку. Если в regexp установлен флаг «g»,
match
выполняет глобальный поиск, находя в строке все соответствующие подстроки. Метод возвращает null, если соответствие не найдено, или массив, если найдено одно и более соответствий. Однако содержимое полученного массива при глобальном поиске существенно отличается. В этом случае элементы массива содержат все подстроки, найденные в строке, а сам массив не имеет свойств
index
и
input
. Обратите внимание: для глобального поиска
match
не предоставляет информации о подвыражениях в скобках и не указывает, в каком месте строки было найдено каждое из соответствий. Эту информацию для глобального поиска можно получить методом
RegExp.ехес.

Пример

Следующий фрагмент реализует глобальный поиск и находит все числа в строке:

"1 plus 2 equals 3".match(/\d+/g) // Вернет ["1", "2", "3”]

Следующий фрагмент реализует неглобальный поиск и использует более сложное регулярное выражение с несколькими подвыражениями. Он находит URL-адрес, а подвыражения регулярного выражения соответствуют протоколу, хосту и пути в URL:

var url = /(\w+):\/\/([\w.]+)\/(\S*)/;

var text = "Visit my home page at http://www.isp.com/~david ";

var result = text.match(url);

if (result != null) {

var fullurl = result[0]; // Содержит " http://www.isp.com/~david”

var protocol = result[1];
// Содержит "http"

var host = result[2];
// Содержит " www.isp.com "

var path = result[3];
// Содержит "~david"

}

См. также

RegExp, RegExp.ехес, RegExp.test, String.replace, String.search; глава 10

String.replace

заменяет подстроку (подстроки), соответствующую регулярному выражению

Синтаксис

строка.replace(regexp, замена)

Аргументы

regexp Объект

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

замена Строка, определяющая текст замены, или функция, вызываемая для генерации текста замены. Подробности см. в подразделе «Описание».

Возвращаемое значение

Новая строка, в которой первое или все соответствия регулярному выражению regexp заменены строкой замена.

Описание

Метод replace выполняет операцию поиска и замены для строки. Он ищет в строке одну или несколько подстрок, соответствующих регулярному выражению regexp, и заменяет их значением аргумента замена. Если в regexp указан глобальный атрибут «g»,

replace
заменяет все найденные подстроки. В противном случае метод заменяет только первую найденную подстроку.

Параметр замена может быть либо строкой, либо функцией. Если это строка, то каждое найденное соответствие заменяется указанной строкой. Имейте в виду, что символ $ имеет особый смысл в строке замена. Как показано в следующей таблице, он показывает, что для замены используется строка, производная от найденного соответствия.

В стандарте ECMAScript v3 определено, что аргумент замена метода

replace
может быть функцией, а не строкой. В этом случае функция будет вызываться для каждого найденного соответствия, а возвращаемая ею строка будет использоваться в качестве текста для замены. Первый аргумент, передаваемый функции, представляет собой строку, соответствующую шаблону. Следующие за ним аргументы - это строки, соответствующие любым подвыражениям внутри шаблона. Таких аргументов может быть ноль или более. Следующий аргумент - это целое, указывающее позицию внутри строки, в которой было найдено соответствие, а последний аргумент функции замена - это сама строка.

Пример

Обеспечение правильного регистра букв в слове «JavaScript»:

text.replace(/JavaScript/i, "JavaScript");

Преобразование имени из формата «Doe, John» в формат «John Doe»:

name.replace(/(\w+)\s*,\s*(\w+)/, ”$2 $1");

Замена всех двойных кавычек двумя одинарными закрывающими и двумя одинарными открывающими кавычками:

text. гер1асе(/"([^"]*)"/g, "''$1''");

Перевод первых букв всех слов в строке в верхний регистр:

text.replace(/\b\w+\b/g, function(word) {

return word.substring(0, 1).toUpperCase +

word.substring(l);

}):

См. также

RegExp, RegExp.exec, RegExp.test, String.match, String.search; глава 10

String.search

поиск соответствия регулярному выражению

Синтаксис

строка.search(regexp)

Аргументы

regexp Объект

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

Поделиться:
Популярные книги

Печать Пожирателя 3

Соломенный Илья
3. Пожиратель
Фантастика:
городское фэнтези
аниме
сказочная фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Печать Пожирателя 3

Я все еще барон

Дрейк Сириус
4. Дорогой барон!
Фантастика:
боевая фантастика
5.00
рейтинг книги
Я все еще барон

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар

Травница Его Драконейшества

Рель Кейлет
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Травница Его Драконейшества

Лекарь Империи 5

Карелин Сергей Витальевич
5. Лекарь Империи
Фантастика:
городское фэнтези
аниме
героическая фантастика
попаданцы
5.00
рейтинг книги
Лекарь Империи 5

Как я строил магическую империю 4

Зубов Константин
4. Как я строил магическую империю
Фантастика:
боевая фантастика
постапокалипсис
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 4

Барон ломает правила

Ренгач Евгений
11. Закон сильного
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Барон ломает правила

Страж Кодекса. Книга IV

Романов Илья Николаевич
4. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга IV

Я Гордый часть 6

Машуков Тимур
6. Стальные яйца
Фантастика:
фэнтези
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый часть 6

Камень Книга седьмая

Минин Станислав
7. Камень
Фантастика:
фэнтези
боевая фантастика
6.22
рейтинг книги
Камень Книга седьмая

Идеальный мир для Лекаря 26

Сапфир Олег
26. Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 26

Сотник

Ланцов Михаил Алексеевич
4. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Сотник

Кодекс Охотника. Книга III

Винокуров Юрий
3. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Кодекс Охотника. Книга III

Имя нам Легион. Том 14

Дорничев Дмитрий
14. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
фантастика: прочее
5.00
рейтинг книги
Имя нам Легион. Том 14