1. Метод конструктора
var reg = new RegExp ( 'd' , 'gi' ) ;
2. Буквальный метод
var reg = / d / gi ;
Существует три типа модификаторов: i, g, m
могут появляться одновременно, в любом порядке (т. е. gi
— это то же самое, что ig
), см. инструкции ниже.
модификатор | иллюстрировать |
---|---|
я | Игнорировать совпадение регистра |
г | Глобальное сопоставление, то есть сопоставление одного совпадения, а затем продолжение сопоставления до конца. |
м | Многострочное сопоставление, то есть сопоставление не прекращается после появления новой строки до конца. |
символ | эффект |
---|---|
Как изменение значения, то есть символы после "" обычно интерпретируются не в соответствии с исходным значением. Например, /b/ соответствует символу "b". Когда /b/ добавляется перед b, смысл изменения заключается в том, чтобы соответствовать границе слова. Или восстановление функциональных символов регулярного выражения, таких как " ", соответствует метасимволу перед ним 0 или более раз, /a / будет соответствовать a, aa, aaa. После добавления "", /a*/ будет соответствовать только "a *". | |
^ | Соответствует вводу или началу строки, /^a/ соответствует «A», но не соответствует «An a». |
$ | Соответствует вводу или концу строки, /a$/ соответствует «An a», но не соответствует «A». |
. | Соответствует любому отдельному символу, кроме символов новой строки и терминатора. |
* | Соответствует предыдущему метасимволу 0 или более раз, /ba*/ будет соответствовать b,ba,baa,baaa |
+ | Соответствует предыдущему метасимволу 1 или более раз, /ba+/ будет соответствовать ba, baa, baaa |
? | Соответствует предыдущему метасимволу 0 или 1 раз, /ba?/ будет соответствовать b,ba. |
(х) | Сопоставьте x и сохраните x в переменных с именем $1...$9. |
х | й |
{н} | Сопоставить ровно n раз |
{н,} | Сопоставьте n или более раз |
{н, м} | Сопоставить нм раз |
[xyz] | Набор символов (набор символов), соответствует любому символу (или метасимволу) в этом наборе. |
[^xyz] | Не соответствует ни одному символу в этом наборе |
[аз] | Любая буква [] может обозначать любую |
[^аз] | ^ в небуквенных обозначениях [] означает, кроме |
[б] | Соответствует символу возврата |
б | Сопоставить границу слова |
Б | Сопоставьте неграничное слово |
cX | Здесь X — управляющий символ, /cM/ соответствует Ctrl-M. |
д | Соответствует буквенно-цифровому символу, /d/ = /[0-9]/ |
Д | Соответствует небуквенно-цифровому символу, /D/ = /[^0-9]/ |
п | Соответствует символу новой строки |
р | Соответствует возврату каретки |
е | Фид формы соответствия |
с | Соответствует символу пробела, включая n, r, f, t, v и т. д. |
С | Соответствует символу без пробелов, равному /[^nfrtv]/ |
т | соответствовать символу табуляции |
v | Соответствует символу двойной табуляции |
ш | Соответствует символу, который может образовывать слово (буквенно-цифровой, это мой вольный перевод, включая цифры), включая символы подчеркивания, например [w] соответствует цифре 5 в "$5,98", что равно [a-zA-Z0-9 ] |
Вт | Соответствует символу, который не может образовывать слово, например, [W] соответствует знаку $ в "$5.98", который равен [^a-zA-Z0-9] |
Соответствует NUL-символам |
Утверждения нулевой ширины используются для поиска объектов до или после некоторого контента (но не включая этот контент), то есть они используются как b,^,$
для указания позиции, которая должна соответствовать определенным условиям (т.е. утверждениям), поэтому их также называют утверждениями нулевой ширины
Предыдущее утверждение | Также называется утверждением положительного просмотра вперед нулевой ширины (?=表达式) что означает сопоставление позиции перед выражением. | Например, [az]*(?=ing) может соответствовать Cook и Sing в кулинарном пении. |
Примечание. Шаги выполнения утверждения просмотра вперед следующие: сначала найдите первое значение с правого конца строки, которая должна быть сопоставлена (то есть выражение в утверждении просмотра вперед), а затем сопоставьте предыдущее выражение, если оно не может быть найдено. соответствует, продолжить Найдите второе значение и затем сопоставьте строку перед вторым. Если оно соответствует, то сопоставьте.
Апостериорное утверждение | Также называется утверждением после просмотра с нулевой шириной (?<=表达式) что означает сопоставление позиции после выражения. | Например, (?<=abc).* может соответствовать defg в abcdefg. |
Примечание. Позднее утверждение является полной противоположностью утверждения просмотра вперед. Шаги его выполнения следующие: сначала найдите первый abc с крайнего левого конца строки, которая должна быть сопоставлена (то есть выражение в утверждении просмотра вперед). ) и затем сопоставить следующее выражение. Если оно не может быть сопоставлено, продолжите поиск второго abc, а затем сопоставьте строку после второго abc. Если оно может быть сопоставлено, оно будет сопоставлено. Например, (?<=abc).*
может соответствовать defgabc в abcdefgabc вместо abcdefg
Отрицательное утверждение нулевой ширины | (?!表达式) также соответствует позиции нулевой ширины, но «утверждение» в этой позиции принимает обратное значение выражения. Например, (?!表达式) представляет позицию перед выражением. , соответствует этой позиции. ; Если выражение истинно, оно не соответствует: Аналогично, существует два типа отрицательных утверждений нулевой ширины: «первое» и «последнее». Отрицательное утверждение нулевой ширины — это (?<!表达式) |
(?<!表达式)
(?!表达式)
Используйте круглые скобки, чтобы заключить соответствующую строку, а затем используйте выражение $1 в замещающем значении, чтобы получить текущее соответствующее значение. Например, если имеется несколько круглых скобок, для получения можно использовать $1, $2, $3. соответствующее значение. После замены всех это именно те данные, которые нам наконец нужны.
Например, ниже показано регулярное выражение в поле поиска, которое может соответствовать всем атрибутам class
в структуре HTML.
className = "([^0-9]+)"
Тогда мы можем заменить
className = { { $1 } }
Тогда это будет
className = "xxx" //转化为
className = { { xxx } }
1. Методы, связанные с объектом RegExp.
имя метода | Сценарии использования | возвращаемое значение | Пример |
---|---|---|---|
тест | Определите, соответствует ли оно | правда или ложь | /d/.test('эно яо 2019') |
тест | Возвращает результаты совпадения, аналогичные match | массив или ноль | /d/.exec('эно яо 2019') |
2. Методы, связанные со строковыми объектами
имя метода | Сценарии использования | возвращаемое значение | Пример |
---|---|---|---|
соответствовать | Возвращает результат сопоставления. В неглобальных условиях он соответствует результату, возвращаемому exec, и содержит информацию, указывающую на соответствующую строку. В глобальных условиях все соответствующие результаты возвращаются сразу. | массив или ноль | 'эно яо 2019'.match(/d/) |
заменять | Замените строку другой строкой или замените обычную совпадающую строку другой подстрокой. | массив или ноль | 'эно яо 2019'.replace(/d/, '2019') |
поиск | Найдите позицию первой совпадающей подстроки и верните значение индекса, в противном случае верните -1. | индекс | 'эно яо 2019'.search(/d/, '2019') |
расколоть | Разделить массив в соответствии с согласованной строкой или строкой, принять строку или обычную строку. | индекс | 'эно яо 2019'.search(/d/, '2019') |