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

на главную

Жанры

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.

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

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

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

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Тьма и Хаос

Владимиров Денис
6. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Тьма и Хаос

Хозяин Теней 6

Петров Максим Николаевич
6. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Теней 6

Неучтенный элемент. Том 11

NikL
11. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 11

Пустоши

Сай Ярослав
1. Медорфенов
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Пустоши

Антимаг

Гедеон Александр и Евгения
1. Антимаг
Фантастика:
фэнтези
6.95
рейтинг книги
Антимаг

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Крестоносец

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Крестоносец

Бродяга

Первухин Андрей Евгеньевич
1. Бродяга
Фантастика:
попаданцы
5.40
рейтинг книги
Бродяга

Чевенгур

Платонов Андрей Платонович
Проза:
советская классическая проза
6.75
рейтинг книги
Чевенгур

Я до сих пор не царь. Книга XXVII

Дрейк Сириус
27. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор не царь. Книга XXVII

Кукла

Прус Болеслав
Проза:
классическая проза
8.87
рейтинг книги
Кукла

Кодекс Охотника XXXI

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