Продукты для ресторанов и кафе
Ваш город:
Москва Краснодар Екатеринбург Ялта Ярославль Александров Алматы Алушта Анадырь Анапа Апрелевка Апшеронск Армавир Балашиха Барнаул Белгород Белореченск Бердск Березовский Благовещенск Верхняя Пышма Видное Владивосток Владикавказ Владимир Волгореченск Вологда Воркута Воронеж Воскресенск Вязники Гагарин Геленджик Гороховец Горячий ключ Грозный Гулькевичи Гусь-Хрустальный Данилов Дедовск Джанкой Дзержинский Дмитров Доброград Долгопрудный Домодедово Дубна Дудинка Евпатория Егорьевск Еткуль Жуковский Златоуст Иваново Ивантеевка Иркутск Истра Ишим Калининград Калуга Камешково Керчь Киржач Ковров Когалым Коломна Кольчугино Королев Костерёво Кострома Красногорск Краснотуринск Красноярск Кропоткин Курган Курганинск Курск Лабинск Лакинск Лежнево Лобня Лыткарино Люберцы Магадан Магас Майкоп Малоярославец Махачкала Миасс Минеральные Воды Мирный Можайск Мончегорск Мытищи Мышкин Набережные Челны Нальчик Нара Наро-Фоминск Невинномысск Нефтеюганск Нижневартовск Нижний Новгород Нижний Тагил Новокубанск Новороссийск Новосибирск Новый Уренгой Ногинск Норильск Ноябрьск Обнинск Одинцово Озерск Омск Орел Оренбург Орехово-Зуево Павловский Посад Пенза Первоуральск Переславль-Залесский Пермь Петропавловск-Камчатский Петушки Подольск Покров Приволжск Протвино Пушкино Пущино Пятигорск Раменское Реутов Ростов Великий Ростов-на-Дону Руза Рыбинск Рязань Салехард Самара Санкт-Петербург Саранск Саратов Севастополь Сергиев Посад Симферополь Славянск-на-Кубани Смоленск Снежинск Собинка Советский Солнечногорск Сочи Ставрополь Струнино Ступино Судак Судогда Суздаль Сургут Тамбов Тверь Тейково Темрюк Тобольск Троицк Туапсе Тула Тургояк Тутаев Тюмень Углич Усть-Лабинск Феодосия Фурманов Хабаровск Ханты-Мансийск Химки Чебаркуль Челябинск Череповец Черноголовка Чехов Шадринск Шуя Щелково Щербинка Электрогорск Электросталь Юбилейный Южно-Сахалинск Юрьев-Польский Яблоновский Якутск Ямало-Ненецкий авт.
+7 (495) 787-11-44
Обратная связь
Ваш город:
Москва Краснодар Екатеринбург Ялта Ярославль Александров Алматы Алушта Анадырь Анапа Апрелевка Апшеронск Армавир Балашиха Барнаул Белгород Белореченск Бердск Березовский Благовещенск Верхняя Пышма Видное Владивосток Владикавказ Владимир Волгореченск Вологда Воркута Воронеж Воскресенск Вязники Гагарин Геленджик Гороховец Горячий ключ Грозный Гулькевичи Гусь-Хрустальный Данилов Дедовск Джанкой Дзержинский Дмитров Доброград Долгопрудный Домодедово Дубна Дудинка Евпатория Егорьевск Еткуль Жуковский Златоуст Иваново Ивантеевка Иркутск Истра Ишим Калининград Калуга Камешково Керчь Киржач Ковров Когалым Коломна Кольчугино Королев Костерёво Кострома Красногорск Краснотуринск Красноярск Кропоткин Курган Курганинск Курск Лабинск Лакинск Лежнево Лобня Лыткарино Люберцы Магадан Магас Майкоп Малоярославец Махачкала Миасс Минеральные Воды Мирный Можайск Мончегорск Мытищи Мышкин Набережные Челны Нальчик Нара Наро-Фоминск Невинномысск Нефтеюганск Нижневартовск Нижний Новгород Нижний Тагил Новокубанск Новороссийск Новосибирск Новый Уренгой Ногинск Норильск Ноябрьск Обнинск Одинцово Озерск Омск Орел Оренбург Орехово-Зуево Павловский Посад Пенза Первоуральск Переславль-Залесский Пермь Петропавловск-Камчатский Петушки Подольск Покров Приволжск Протвино Пушкино Пущино Пятигорск Раменское Реутов Ростов Великий Ростов-на-Дону Руза Рыбинск Рязань Салехард Самара Санкт-Петербург Саранск Саратов Севастополь Сергиев Посад Симферополь Славянск-на-Кубани Смоленск Снежинск Собинка Советский Солнечногорск Сочи Ставрополь Струнино Ступино Судак Судогда Суздаль Сургут Тамбов Тверь Тейково Темрюк Тобольск Троицк Туапсе Тула Тургояк Тутаев Тюмень Углич Усть-Лабинск Феодосия Фурманов Хабаровск Ханты-Мансийск Химки Чебаркуль Челябинск Череповец Черноголовка Чехов Шадринск Шуя Щелково Щербинка Электрогорск Электросталь Юбилейный Южно-Сахалинск Юрьев-Польский Яблоновский Якутск Ямало-Ненецкий авт. округ Яхрома Доставка по России Абинск
Памятка по синтаксису регулярных выражений — JavaScript
На этой странице представлена общая памятка по всем возможностям синтаксиса RegExp
, собранная из статей руководства RegExp
. Если вам нужна дополнительная информация по определенной теме, перейдите по ссылке в соответствующем заголовке, чтобы получить доступ к полной статье или перейти к руководству.
Классы символов различают типы символов, например, различают буквы и цифры.
Символы | Значение |
---|---|
[xyz] | Класс персонажа. Соответствует любому из заключенных символов. Ты можешь указать диапазон символов с помощью дефиса, но если дефис отображается как первый или последний символ, заключенный в квадратные скобки, это воспринимается как буквальный дефис для включения в класс символов как обычный персонаж. Например, Например, Например, 9символ также может указывать на начало ввода. |
. | Имеет одно из следующих значений:
|
\д | Соответствует любой цифре (арабской цифре). Эквивалентно |
\ш | Соответствует любому буквенно-цифровому символу основного латинского алфавита,
включая подчеркивание. Эквивалентно |
\Вт | 9A-Za-z0-9_]/ соответствует «%» в
«50%».|
| Соответствует одному символу пробела, включая пробел, табуляцию, форму
перевод строки, перевод строки и другие пробелы Unicode. Эквивалентно | 9\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] . Например,
\т | Соответствует горизонтальной вкладке. |
\r | Соответствует возврату каретки. |
\н | Соответствует переводу строки. |
\v | Соответствует вертикальной вкладке. |
\ф | Соответствует переводу страницы. |
[\b] | Соответствует возврату. Если вы ищете символ границы слова
(\b ), см.
Границы. |
\0 | Соответствует символу NUL. Не используйте после этого другую цифру. |
\с х | Соответствует управляющему символу, используя
нотация вставки, где «X» — буква от A до Z (соответствует кодовым точкам |
\х чч | Соответствует символу с кодом чч (два
шестнадцатеричные цифры). |
\и чххх | Сопоставляет кодовую единицу UTF-16 со значением чччч (четыре шестнадцатеричных цифры). |
\u {hhhh} или \u{hhhhh} | (Только когда установлен флаг u .) Соответствует символу с
значение Юникода U+ чччч или U+ ччччч (шестнадцатеричные цифры). |
\ | Указывает, что следующий символ следует обрабатывать особым образом, или «сбежал». Он ведет себя одним из двух способов.
Обратите внимание, что некоторые символы, такие как Примечание: Чтобы буквально сопоставить этот символ, экранируйте его.
с собой. Другими словами для поиска |
х | г | Дизъюнкция: Соответствует либо «x», либо «y». Каждый компонент, разделенный вертикальной чертой ( Примечание: Дизъюнкция — это еще один способ указать «набор вариантов», но это не класс символов. Дизъюнкции — это не атомы — вам нужно использовать группу, чтобы сделать ее частью более крупного паттерна. |
Утверждения включают границы, которые указывают начало и конец строк и слов, а также другие шаблоны, указывающие тем или иным образом на возможность совпадения (включая просмотр вперед, просмотр назад и условные выражения).
Утверждения граничного типа
Символы | Значение |
---|---|
$ | Соответствует концу ввода. Если для многострочного флага установлено значение true, также
соответствует непосредственно перед символом разрыва строки. Например, |
\б | Соответствует границе слова. Это позиция, в которой символ слова не следует за другим символом слова или не предшествует ему, например, между буква и пробел. Обратите внимание, что совпадающая граница слова не включены в матч. Другими словами, длина совпадающего слова граница нулевая. Примеры:
Чтобы соответствовать символу возврата ( |
\Б | Соответствует границе слова. Это положение, при котором предыдущие и
следующий символ имеет один и тот же тип: либо оба должны быть словами, либо
оба должны быть не словами, например, между двумя буквами или между двумя
пространства. Начало и конец строки считаются не словами.
Так же, как граница совпадающего слова, совпадающая граница не слова
также не участвует в матче. Например, |
Другие утверждения
Примечание: ? Символ
также может использоваться в качестве квантификатора.
Символы | Значение |
---|---|
х(?=у) | Предварительное утверждение: Соответствует «x», только если «x»
за которым следует «у». Например, / |
х(?!у) | Отрицательное утверждение просмотра вперед: Соответствует «x», только если «x»
не следует «y». Например, |
(?<=y)x | Утверждение обратного просмотра: Соответствует "x", только если "x"
предшествует «у». Например, |
(? | Отрицательное утверждение просмотра назад: Соответствует "x", только если
"x" не предшествует "y". Например, |
Группы и обратные ссылки указывают группы символов выражения.
Символы | Значение |
---|---|
( х ) | Группа захвата: совпадений Регулярное выражение может иметь несколько групп захвата. В результатах
соответствует группам захвата, обычно в массиве, элементы которого находятся в
в том же порядке, что и левые скобки в группе захвата. Это
обычно просто порядок самих групп захвата. Этот
становится важным, когда группы захвата являются вложенными. Совпадения
доступ с использованием индекса элементов результата ( Захват групп имеет штраф за производительность. Если вам не нужен совпадающая подстрока, которую нужно отозвать, предпочитает незахватывающие круглые скобки (см. ниже). |
(?<Имя>x) | Именованная группа захвата: Соответствует «x» и сохраняет его в
свойство групп возвращаемых совпадений под указанным именем
по Например, чтобы извлечь код города США из телефона
номер, мы могли бы использовать |
(?: x ) | Группа без захвата: Соответствует "x", но не запоминает
матч. Совпадающая подстрока не может быть отозвана из результирующего
элементы массива ( [1], …, [n] ) или из предопределенных RegExp свойства объекта ( $1, …, $9 ). |
\ п | Где «n» — целое положительное число. Обратная ссылка на последний
подстрока, соответствующая скобке n в регулярном выражении
(считая левые скобки). Например, |
\к<имя> | Обратная ссылка на последнюю подстроку, соответствующую именованной группе захвата , заданной параметром Например, Примечание: |
Квантификаторы указывают количество совпадающих символов или выражений.
Примечание: В дальнейшем элемент относится не только к символам в единственном числе, но также включает классы символов, escape-последовательности свойств Unicode, группы и обратные ссылки.
Символы | Значение |
---|---|
х * | Соответствует предыдущему элементу "x" 0 или более раз. Например, |
х + | Соответствует предыдущему элементу "x" 1 или более раз. Эквивалентно |
х ? | Соответствует предыдущему элементу "x" 0 или 1 раз. Например, Если используется сразу после любого из квантификаторов |
x { n } | Где «n» — положительное целое число, соответствует ровно «n» вхождениям
предыдущий пункт «х». Например, |
x { n ,} | Где «n» — положительное целое число, соответствует как минимум «n» вхождениям
предыдущий пункт «х». Например, |
x { n , м } | Где «n» равно 0 или положительному целому числу, «m» — положительному целому числу и |
| По умолчанию квантификаторы, такие как
|
Экранирование свойств Unicode позволяет сопоставлять символы на основе их свойств Unicode.
// Недвоичные значения /\p{UnicodePropertyValue}/ /\p{UnicodePropertyName=UnicodePropertyValue}/ // Двоичные и недвоичные значения /\p{UnicodeBinaryPropertyName}/ // Отрицание: \P отрицается \p /\P{UnicodePropertyValue}/ /\P{UnicodeBinaryPropertyName}/
-
UnicodeBinaryPropertyName
Имя бинарного свойства. Например:
ASCII
,Alpha
,Math
,Diacritic
,Emoji
,HEX_DIGIT
,Math
,White_space
и т. Д. См. Proplist Data Unicode.txt.-
UnicodePropertyName
Имя небинарного свойства:
- General_Category (
gc
) - Скрипт (
sc
) - Script_Extensions (
scx
)
См. также PropertyValueAliases.txt
- General_Category (
-
UnicodePropertyValue
Один из токенов, перечисленных в разделе «Значения» ниже. Многие значения имеют псевдонимы или сокращения (например, значение
Decimal_Number
для свойстваGeneral_Category
может быть записано какNd
,цифра
илиDecimal_Number
). Для большинства значений частьUnicodePropertyName
и знак равенства могут быть опущены. Если указаноUnicodePropertyName
, значение должно соответствовать заданному типу свойства.
Примечание: Поскольку доступно множество свойств и значений, мы не будем подробно описывать их здесь, а приведем различные примеры.
Обнаружили проблему с содержанием этой страницы?
- Отредактируйте страницу на GitHub.
- Сообщить о проблеме с содержимым.
- Посмотреть исходный код на GitHub.
Хотите принять участие?
Узнайте, как внести свой вклад.
Последний раз эта страница была изменена участниками MDN.
Объект JavaScript RegExp — использование регулярных выражений в сценариях на стороне клиента
Вариант регулярных выражений JavaScript является частью стандарта ECMA-262 для языка. Это означает, что ваши регулярные выражения должны работать одинаково во всех реализациях JavaScript. В прошлом было много серьезных проблем, связанных с браузером. Но современные браузеры очень хорошо следуют стандарту JavaScript для регулярных выражений. Вам нужно только убедиться, что ваши веб-страницы имеют тип документа, который запрашивает браузер использовать стандартный режим, а не специальный режим.
Вариант регулярных выражений JavaScript
В исходном коде JavaScript регулярное выражение записывается в виде /pattern/modifiers, где «шаблон» — это само регулярное выражение, а «модификаторы» — это последовательность символов, обозначающая различные параметры. Часть «модификаторы» необязательна. Этот синтаксис заимствован из Perl. JavaScript поддерживает следующие модификаторы, подмножество модификаторов, поддерживаемых Perl:
- /g включает «глобальное» сопоставление. При использовании метода replace() укажите этот модификатор, чтобы заменить все совпадения, а не только первое.
- /i делает регулярное выражение нечувствительным к регистру.
- /m включает «многострочный режим». В этом режиме знак вставки и доллар совпадают до и после разрыва строки в строке темы.
- /s включает «однолинейный режим». В этом режиме точка соответствует разрыву строки. Этот модификатор является новым в ECMAScript 2018. Старые браузеры, включая Internet Explorer и оригинальный Edge, его не поддерживают.
Вы можете комбинировать несколько модификаторов, связывая их вместе, как в /regex/gim. В частности, отсутствует возможность сделать так, чтобы точки соответствовали символам разрыва строки.
Поскольку регулярное выражение ограничивается косой чертой, любые косые черты, которые появляются в регулярном выражении, должны быть экранированы. Например. регулярное выражение 1/2 записывается как /1\/2/ в JavaScript.
Чтобы найти абсолютно любой символ без /s, вы можете использовать класс символов, который содержит сокращенный класс и его отрицательную версию, например [\s\S].
JavaScript реализует регулярные выражения в стиле Perl. Однако ему не хватает целого ряда расширенных функций, доступных в Perl и других современных разновидностях регулярных выражений:
- Нет привязок \A или \Z, соответствующих началу или концу строки. Вместо этого используйте каретку или доллар.
- Нет группировки атомов или притяжательных кванторов.
- Нет поддержки Unicode, за исключением сопоставления отдельных символов с \uFFFF.
- Нет именованных групп захвата. Вместо этого используйте пронумерованные группы захвата.
- Нет модификаторов режима для установки параметров соответствия в регулярном выражении.
- Без условий.
- Нет комментариев к регулярным выражениям. Вместо этого опишите регулярное выражение с помощью // комментариев JavaScript вне строки регулярного выражения.
Многие из этих функций доступны в библиотеке XRegExp для JavaScript.
Методы регулярных выражений класса String
Чтобы проверить, соответствует ли конкретное регулярное выражение (части) строке, вы можете вызвать метод match() строки: if (myString.match(/regex/)) { /*Success! */ }. \d+$/ соответствует только строкам, полностью состоящим из цифр.
Чтобы выполнить поиск и замену с помощью регулярных выражений, используйте метод replace() строки: myString.replace(/replaceme/g, "replacement"). Использование модификатора /g гарантирует замену всех вхождений «replaceme». Второй параметр — обычная строка с замещающим текстом.
Использование метода split() строки позволяет разбить строку на массив строк, используя регулярное выражение для определения позиций, в которых строка разбивается. Например. myArray = myString.split(/,/) разбивает список, разделенный запятыми, на массив. Сами запятые не включаются в результирующий массив строк.
Как использовать объект RegExp JavaScript
Самый простой способ создать новый объект RegExp — просто использовать специальный синтаксис регулярного выражения: myregexp = /regex/. Если у вас есть регулярное выражение в строке (например, потому что оно было введено пользователем), вы можете использовать конструктор RegExp: myregexp = new RegExp(regexstring). Модификаторы могут быть указаны в качестве второго параметра: myregexp = new RegExp(regexstring, "gim").
Я рекомендую не использовать конструктор RegExp с литеральной строкой, потому что в литеральных строках необходимо экранировать обратную косую черту. Регулярное выражение \w+ может быть создано как re = /\w+/ или как re = new RegExp("\\w+"). Последнее определенно труднее читать. Регулярное выражение \\ соответствует одной обратной косой черте. В JavaScript это становится re = /\\/ или re = new RegExp("\\\\").
Каким бы способом вы ни создали «myregexp», вы можете передать его описанным выше методам String вместо буквального регулярного выражения: myString.replace(myregexp, «replacement»).
Если вы хотите получить совпавшую часть строки, вызовите функцию exec() созданного вами объекта RegExp, например: mymatch = myregexp.exec("subject"). Эта функция возвращает массив. Нулевой элемент массива будет содержать текст, совпавший с регулярным выражением. Следующие элементы содержат текст, соответствующий скобкам в регулярном выражении, если таковые имеются. mymatch.length указывает длину массива match[], которая на единицу больше, чем количество групп захвата в вашем регулярном выражении. mymatch.index указывает позицию символа в строке темы, с которой совпало регулярное выражение. mymatch.input сохраняет копию строки темы.
Вызов функции exec() также изменяет свойство lastIndex объекта RegExp. Он сохраняет в строке темы индекс, с которого будет начинаться следующая попытка сопоставления. Вы можете изменить это значение, чтобы изменить начальную позицию следующего вызова exec().
Функция test() объекта RegExp является ярлыком для exec() != null. Он принимает строку темы в качестве параметра и возвращает true или false в зависимости от того, соответствует ли регулярное выражение части строки или нет.
Вы также можете вызывать эти методы для литеральных регулярных выражений. /\d/.test(subject) — это быстрый способ проверить, есть ли какие-либо цифры в строке темы.
Синтаксис текста замены
Функция String. replace() интерпретирует несколько заполнителей в текстовой строке замены. Если регулярное выражение содержит группы захвата, вы можете использовать обратные ссылки в тексте замены. $1 в замещающий текст вставляет текст, соответствующий первой захватываемой группе, $2 — второй и так далее до $9.9. Если в вашем регулярном выражении больше 1, но меньше 10 групп захвата, то $10 рассматривается как обратная ссылка на первую группу, за которой следует буквальный ноль. Если в вашем регулярном выражении менее 7 групп захвата, то $7 рассматривается как буквальный текст $7. $& повторно вставляет все соответствие регулярному выражению. $` (обратная галочка) вставляет текст слева от совпадения с регулярным выражением, $' (одинарная кавычка) вставляет текст справа от совпадения с регулярным выражением. $$ вставляет один знак доллара, как и любой $, который не образует один из описанных здесь заполнителей.
$_ и $+ не являются частью стандарта, но тем не менее поддерживаются некоторыми браузерами.