Есть два способа определить регулярные выражения в JavaScript.
1. REGEXP Constructor
var pattern = new Regexp ("[bc] at", "i");
Он получает два параметра: один - это шаблон строки, а другой - дополнительная строка флага.
2. буквальный
var pattern = /[bc] at /i;
Соответствующий шаблон регулярных выражений поддерживает три струны флага:
G: Global, глобальный режим поиска, который будет применяться ко всем строкам, вместо того, чтобы останавливать поиск при поиске первого матча;
I: дело Ingore, игнорируйте буквы, то есть игнорировать шаблон и строковый случай при определении совпадений;
М: Несколько строк, многослойный рисунок, то есть, когда поиск достигает конца линии текста, он будет продолжать искать, есть ли совпадение на следующей строке.
Разница между этими двумя методами создания регулярных выражений заключается в том, что буквальный регулярный выражение всегда имеет один и тот же экземпляр Regexp, и каждый новый экземпляр Regexp, созданный с использованием конструктора, является новым экземпляром.
Metacharacter
Metacharacters - это персонажи с особыми значениями. Основными метахарактерами регулярных выражений являются:
([{ / ^ $ |)? * +.
Метахары имеют разные значения в разных комбинациях.
Предопределенные специальные персонажи
Класс персонажей простой класс
Как правило, регулярное выражение имеет символ, соответствующий символу в строке, но мы можем использовать [] для создания простого класса для представления класса символов, которые соответствуют определенной функции. Например:
[ABC] может соответствовать символам в скобках A, B, C или любой их комбинации.
Обратный класс
Поскольку [] может построить класс, вы, естественно, подумаете о соответствующем классе, который не содержит контент в скобках. Этот класс называется обратным классом. Например, [^ABC] может соответствовать символам, которые не являются или B или C.
Категория сфера
Иногда это слишком хлопотно, чтобы соответствовать персонажам один за другим, и тип совпадения одинаково. В настоящее время мы можем использовать линию подключения «-» для представления содержания между определенным закрытым интервалом. Например, сопоставление всех строчных букв может использовать [AZ], следующим образом:
Сопоставление всех от 0 до 9 может быть выражено с помощью [0-9]:
Предопределенные классы
Для нескольких классов мы создали выше, регулярные выражения дают нам несколько обычно используемых предопределенных классов, чтобы соответствовать общим символам следующим образом:
| характер | Эквивалентная категория | значение |
| Полем | [^/n/r] | Сопоставьте все символы, кроме возврата каретки и разрыва линии |
| /д | [0-9] | Номер символы |
| /Д | [^0-9] | Нематочечные персонажи |
| /с | [/t/n/x0b/f/r] | Материалы пробелов |
| /С | [^/t/n/x0b/f/r] | Неудолетные персонажи |
| /w | [a-za-z_0-9] | Слово символы (буквы, цифры и подчеркивание) |
| /W | [^a-za-z_0-9] | Не словные персонажи |
квантификатор
Приведенный выше метод соответствует символам один на один. Если персонаж появляется несколько раз подряд, будет очень трудно соответствовать в соответствии с вышеуказанным методом. Поэтому мы задаемся вопросом, есть ли другие методы, которые могут непосредственно соответствовать персонажам, которые появляются неоднократно. Регулярные выражения дают нам некоторые квантификаторы следующим образом:
| характер | значение |
| ? | Ноль или один раз (до один раз) |
| + | Появляются один или более раз (по крайней мере один раз) |
| * | Ноль или несколько случаев (в любое время) |
| {n} | Появляются и раз |
| {n, m} | Появляться в м раз |
| {n,} | Появляться как минимум n раз |
Жадные и не-зеленого режима
Для метода сопоставления {n, m}, следует ли соответствовать n или m? Это включает в себя проблему сопоставления шаблонов. По умолчанию квантификаторы - это как можно больше соответствующих символов, которые называются жадным режимом, например:
var num = '123456789'; num.match (// d {2,4}/g); // [1234], [5678], [9]Для правильного и не-сильного режима вам нужно только добавить "?" после квантового. Например, {n, m}?
var num = '123456789'; num.match (// d {2,4}?/g); // [12], [34], [56], [78], [9]Группировка
Квантовы могут быть сопоставлены только несколько раз для одного символа. Что если мы хотим сопоставить определенный набор символов несколько раз? В регулярных выражениях скобки могут определить строку в целом как группа.
Если мы хотим сопоставить слово Apple появляется 4 раза, мы можем соответствовать (Apple) {4}, как это, следующим образом:
Если вы хотите соответствовать Apple или Orange, появится 4 раза, вы можете вставить символ трубы «|», например:
(Apple | Orange) {4}
Если несколько скобок появляются в регулярном выражении, используя группировку, то есть несколько групп, результат сопоставления также будет группировать, например, сопоставляется:
(яблоко)/d+(оранжевый)
Если мы не хотим захватывать определенные пакеты, нам просто нужно следовать вопросительному знаку и толстой кишке непосредственно перед кронштейнами пакета, например:
(?: Apple)/D+(Orange)
граница
Регулярные выражения также предоставляют нам несколько часто используемых граничных символов, таких как:
| характер | значение |
| ^ | Начните с XX |
| $ | Заканчивая хх |
| /б | Граница слова, ссылаясь на символы, отличные от [a-za-z_0-9] |
| /Б | Не слова границы |
Граница слова соответствует позиции, одной стороной этой позиции являются символы, которые составляют слово, но другая сторона-это начальная или конечная позиция не словного символа или строки.
Предварительный просмотр
Lookahead используется, чтобы соответствовать следующему появлению конкретного набора символов или нет.
| выражение | значение |
| exp1 (? = exp2) | За совпадением следует exp2 exp1 |
| exp1 (?! Exp2) | Совпадайте Exp1, который не является Exp2 впоследствии |
См. Пример:
яблоко (? = оранжевый)
(/apple(?=orange)/).test('AppleorAnge123 '); // true (/apple(?=orange)/).test('ApplePear345 '); //ЛОЖЬДавайте посмотрим на другой пример:
яблоко (?! Orange)
(/apple(? // false (/apple(? //истинный
Приведенная выше статья представляет собой клише о синтаксисе регулярного выражения JavaScript. Это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.