JavaScript: регулярное выражение

Регулярное выражение

Регулярное выражение (иногда сокращенно «регулярное выражение») — это шаблон, используемый для сопоставления комбинаций символов в строке.

Например, , можно использовать регулярное выражение для поиска всех текстовых строк в абзаце, содержащих слово «красный», и отображения тех строк, в которых найдено совпадение.

Вы также можете заменить слово «красный» с «зеленым». Иногда регулярные выражения используются для проверки адреса электронной почты, пароля, имени и т. Д. В поле HTML-формы, чтобы получить допустимый формат. В JavaScript регулярные выражения также являются объектами.

Создание регулярного выражения

Существует два способа создания регулярного выражения.

Используя инициализатор объекта, как показано ниже:

var colorName =/Green/;

Приведенный выше код создает новый объект RegExp с именем colorName и присваивает узору зеленый цвет. В приведенных выше обозначениях символ прямой косой черты (/) используется для обозначения начала и конца шаблона.

Использование функции-конструктора, как показано ниже:

re = new RegExp («Green»)

JavaScript: шаблоны регулярных выражений

Иногда требуется различное сопоставление шаблонов вместо прямого соответствие. Например, шаблон/xy * z/соответствует любому символу.

Например,/bo */соответствует ‘boo’ в «Книге» и ‘b’ в «Прекрасной реке», но ничего в «Постоянном предприятии».

Содержание:

  • Регулярное выражение Примеры (31)
  • Полный список и описание специальных символов соответствия шаблону

Использование метода тестирования:

  let TextStr = "Быстрая коричневая лиса перепрыгивает через ленивую собаку."; let MatchRegex =/quick/; let rexp = MatchRegex.test (TextStr)  ;  console.log (rexp); //trueMatchRegex =/Quick/; rexp = MatchRegex.test (TextStr); console.log (rexp); //false  

Соответствие буквенным строкам:

  let TextStr = "Быстрый коричневый  лиса перепрыгивает через ленивую собаку. "; let MatchRegex =/quick/;  let rexp = MatchRegex.test (TextStr);  console.log (rexp); //true  

Сопоставление литеральной строки с различными возможностями:

  let TextStr =  «Корова - домашнее животное.»; Let DomRegexp =/Cow | cat | rose | dog/; let rexp = DomRegexp.test (TextStr); console.log (rexp); //true  

Игнорировать регистр при сопоставлении:

  let TextStr = "JavaScriptTutorial"  ; let IgCaseRegexp =/JavaScriptTutorial/i; let rexp = IgCaseRegexp.test (TextStr); console.log (rexp); //true  

Извлечь совпадения:

  let TextStr = "Извлечь 'zip  'из этого файла. "; let codingRegexp =/zip/; let rexp = TextStr.match (codingRegexp); console. журнал (rexp); //["zip"]  

Найти больше, чем первое совпадение:

   let TextStr = "Быстрая коричневая лиса перепрыгивает через ленивую собаку"; let MoreRegexp =/the/gi; let rexp = TextStr.match (MoreRegexp); console.log (rexp); //["The", "the"]  

Соответствует чему угодно с периодом подстановки:

  let TextStr = "Последние фазы войны!"; let WildRegexp =/.ar/;let rexp = WildRegexp.test (TextStr); console.log (rexp); //true  

Соответствие одного символа нескольким возможностям:

  let TestStr = "  Быстрая коричневая лисица перепрыгивает через ленивую собаку. "; Let vowelRegexp =/[aeiou]/gi;  пусть rexp = TestStr.match (vowelRegexp);  console.log (rexp); //[«e», «u», «i», «o», «o», «u», «o», «e», «e», «a», «o»]  

Сопоставьте буквы алфавита:

  let TestStr = "Упакуйте мою коробку пятью дюжинами спиртных напитков  кувшины. "; пусть алфавитRegexp =/[az]/gi;  пусть rexp = TestStr.match (алфавитRegexp);  console.log (rexp); //[«P», «a», «c», «k», «m», «y», «b», «o», «x», «w», «i», «t»  , «h», «f», «i», «v», «e», «d», «o», «z», «e», «n», «l», «i», «  q "," u "," o "," r "," j "," u "," g "," s "]  

Соответствие Цифры и буквы алфавита:

  let TestStr = "Python 3.8.0, документация выпущена 14 октября 2019 г."; let my_Regexp =/[d-  №0-9]/ги;  пусть rexp = TestStr.match (my_Regexp);  console.log (rexp); //[«h», «n», «3», «8», «0», «d», «m», «e», «n», «i», «n», «e»  , «l», «e», «e», «d», «n», «1», «4», «e», «2», «0», «1», «9»]  

Соответствие одиночным символам не указано:

  let TestStr = "4 книги были включены  таблица. "; let my_Regexp =/[^ aeiou ^ 0-9]/gi;  пусть rexp = TestStr.match (my_Regexp);  console.log (rexp); //["T", "h", "", "", "b", "k", "s", "", "w", "s", "", "n", "",  "t", "h", "", "t", "b", "l", "."]  

Соответствие символам, которые встречаются или другое время:

  let TestStr = "Hippopotamus"; let my_Regexp =/p +/g;  let rexp = TestStr.match (my_Regexp); консоль. журнал (rexp); //["pp", "p"]  

Сопоставление символов, которые встречаются ноль или более раз:

  let TestStr = "Huuuuuuuuuuuuuuuuurrah!"; let my_Regexp =/Hu */;  пусть rexp = TestStr.match (my_Regexp); console.log (rexp); //["Хууууууууууууууу"]  

Поиск символов с ленивым сопоставлением:

  let  textStr = " Очень быстрый ветер "; let my_Regexp =/?/;  пусть rexp = textStr.match (my_Regexp); console.log (rexp); //[""]  

Соответствие шаблонам начальной строки:

   let TestStr = "Упакуйте мою коробку пятью дюжинами кувшинов с ликером."; let my_Regexp =/^ Pack/;  пусть rexp = my_Regexp.test (TestStr); console.log (rexp); //true  

Соответствие шаблонам конечной строки:

  let TestStr = "Pack my  ящик с пятью дюжинами кувшинов со спиртным "; let my_Regexp =/jugs $/;  пусть rexp = my_Regexp.test (TestStr); console.log (rexp); //true  

Соответствие шаблонам конечной строки:

  let TestStr = "Pack my  ящик с пятью дюжинами кувшинов со спиртным "; let my_Regexp =/jugs $/;  пусть rexp = my_Regexp.test (TestStr); console.log (rexp); //true  

Соответствовать всем буквам и цифрам:

  let TestStr = "Pack  мой ящик с пятью дюжинами кувшинов со спиртным "; let my_Regexp =/ b/gi;  пусть rexp = TestStr.match (my_Regexp) .length; console.log (rexp); //16  

Сопоставить все, кроме букв и цифр:

  let TestStr = "  Упакуйте мою коробку пятью дюжинами кувшинов со спиртным "; let my_Regexp =/ W/g;  пусть rexp = TestStr.match (my_Regexp) .length; console.log (rexp); //7  

Ограничить возможные имена пользователей:

  let TestStr = "TheQuickbrownFox";  let userRexp =/^ [az] ([0-9] [0-9] + | [az] +  d *) $/i; let rexp = userRexp.test (TestStr); console.log (rexp); //true  

Match Whitespace:

  let TestStr = "Упаковать мою коробку  пять дюжин кувшинов со спиртным "; let countWSRexp =/ s/g;  let rexp = TestStr.match (countWSRexp); console.log (rexp)//["", "", "", "", "", "", ""]  

Соответствие непробельным символам:

  let TestStr = "Упаковать мою коробку пятью дюжинами кувшинов со спиртным"; let countNWSRexp =/  S/г;  let rexp = TestStr.match (countNWSRexp); консоль. log (rexp)//[«P», «a», «c», «k», «m», «y», «b», «o», «x», «w», «i»  , «t», «h», «f», «i», «v», «e», «d», «o», «z», «e», «n», «l», «  i "," q "," u "," o "," r "," j "," u "," g "," s "]  

Укажите верхнее и нижнее количество совпадений:

  let TestStr = "Ok bye"; let my_Regex =/Ok {1,5}  sbye/ ;  let rexp = my_Regex.test (TestStr) console.log (rexp)//true  

Укажите только меньшее количество совпадений:

  let TestStr = "Hauuurah"; let my_Regex =/Hau {3,} rah/;  let rexp = my_Regex.test (TestStr); console.log (rexp)//true  

Укажите точное количество совпадений:

  let TestStr = "Huuuuuurah"; пусть my_Regexp =/Hu {6} rah/;  let rexp = my_Regexp.test (TestStr); console.log (rexp)//true  

Проверить все или ничего:

  let TestStr = "Beautiful"; let my_Regexp =/Beauti? ful/;  let rexp = my_Regexp.test (TestStr); console.log (rexp)//true  

Положительный и отрицательный прогноз:

  let TestStr = "Skyrider"; let my_Regexp =/^ (? =  w {6,}) (? =  D *  d {2})/; let rexp = my_Regexp  .test (TestStr); console.log (rexp)//false  

Проверить смешанную группировку символов:

  let TestStr = "JavaScript Tutorial"; let myRegexp =/(PHP|JavaScript).*Tutorial/;let rexp = myRegexp.test (TestStr); console.log (rexp)//true  

Повторное использование шаблонов с использованием групп захвата:

  let TestStr = "15 15 15";  let my_Regex =/^ ( d +)  s  1  s  1 $/; let rexp = my_Regex.test (TestStr); console.log (rexp)//true  

Используйте группы захвата для поиска и замены:

  let TextStr = "Это красный цветок."; let Org_Regexp =/red/ ;  пусть replace_Regexp = "желтый";  let rexp = TextStr.replace (Org_Regexp, replace_Regexp); console.log (rexp)//«Это желтый цветок.»  

Удалите пробелы из начального и Конец:

  let TestStr = "JavaScript, Tutorial!"; Let my_Regexp =/^  s + |  s + $/g;  пусть rexp = TestStr.replace (my_Regexp, "");  console.log (rexp)//«JavaScript, Учебник!»  

В следующей таблице представлен полный список и описание специальных символов сопоставления с образцом, которые можно использовать в регулярных выражениях.

Символ Значение
Указывает, что следующий символ является особенным и не должен интерпретироваться буквально
Например,/d/соответствует символу ‘d’. Помещая обратную косую черту перед d, то есть используя/ d/, символ становится специальным, означающим, что он соответствует любому символу, который является цифрой.
-или-
Указывает, что следующий символ не является особенным и должен интерпретироваться буквально.
^ Соответствует началу строки или строки.
Например,/^ A/не соответствует ‘A’ в «О статьях», но соответствует ему в «Жизни»
$ Соответствует концу строки или строки.
Например,/e $/не соответствует ‘t’ в «точном», но соответствует ему в «w3resource»
* Соответствует предыдущему символу 0 или более раз.
Например,/bo */соответствует ‘boo’ в «Загрузочном USB-накопителе» и ‘b’ в «Красивом уме», но ничего в «Постоянно действующем предприятии».
+ Соответствует предыдущему символу 1 или более раз.
Например,/a +/соответствует «a» в «Daniel» и всем a в «Daaam»
? Соответствует предыдущему символу 0 или 1 раз.
Например,/r? eu?/соответствует ‘re’ в «w3resource» и ‘eu’ в «европе».
. Десятичная точка соответствует любому одиночному символу, кроме новой строки.
Например,/. n/соответствует ‘an’ и ‘on’ в словах «апельсин на столе».
(x) Соответствует ‘x’ и запоминает соответствующий символ. Например,/(go)/соответствует и запоминает ‘go’ в «go there»
x | y Соответствует «x» или «y».
Например,/green | red/соответствует ‘green’ в «зеленом цвете» и синему в «синем цвете».
{n } Соответствует ровно n (положительному целому) вхождению предыдущего символа.
Например,/a {2}/не соответствует «a» в «dam», но соответствует всем a в «daam» и первым двум a в «daaam»
{n,} Соответствует как минимум n (положительному целому) вхождению предыдущего символа.
Для Например,/a {2,}/не соответствует «a» в «dam», но соответствует всем a в «daam» и первым двум a в «daaam»
{n, m} Соответствует как минимум n и как максимум m (n и m положительные целые числа) вхождений предыдущего символа.
Например,/a {1,3}/ничего не соответствует в «dom», «a» в «dam», первым двум a в «daam» и первым трем a в «daaaaaam». Обратите внимание, что при сопоставлении «daaaaaam» совпадение будет «aaa», так как максимальное значение m равно 3, хотя в исходной строке было больше букв a..
[xyz] Соответствует любому из набора символов, используя дефис, вы можете указать диапазон символов.
Например. [uvwxyz] то же самое, что [u-z]. Совпадение «y» в «желтом» и «u» в «синем».
[^ xyz] Соответствует любому символу, который не заключен в скобки, используя дефис, вы можете указать диапазон символов.
Например, [^ wxyz] то же самое, что [^ wz]. Изначально они соответствуют букве «b» в «синем» и «s» в «указать».
[ b] Соответствует пробелу.
b Соответствует границе слова (позиции между символом слова и символом, не являющимся словом), например пробел.
Например,/ bn w/соответствует ‘on’ в «раньше»
B Соответствует позиции, которая находится за пределами символа слова и границы символа, отличного от слова.
Например,/ w Bn/соответствует ‘on’ в слове «раньше».
cX Соответствует управляющему символу (X) в строке. Например,/ cM/соответствует control-M в строке.
d Соответствует любому символу, который является цифра. Эквивалентно [0-9].
Например,/ d/или/[0-9]/соответствует ‘2’ в «E2 означает второй пример».
D Соответствует любому символу, не являющемуся цифрой. Эквивалентно [^ 0-9].
Например,/ D/или/[^ 0-9]/соответствует ‘C’ в «E2 означает второй пример».
f Соответствует каналу формы
n Соответствует новой строке
r Соответствует возврату каретки.
s Соответствует любому символу пробела (включая табуляцию, новую строку, возврат каретки, подачу формы, вертикальную табуляцию). [ t n r f v].
Например,/ s w */соответствует слову «яблоко» в слове «Яблоко».
S Соответствует любому символу, отличному от пробела. Эквивалентно [^ f n r t v].
Например,/ S/ w * соответствует ‘An’ в «яблоке»
t Соответствует табуляции
v Соответствует вертикальной табуляции.
w Соответствует любому символу слова (буквенно-цифровому), включая подчеркивание. Эквивалентно [A-Za-z0-9_].
Например,/ w/соответствует ‘g’ в «зеленом», «8» в «12,86» и «3» в «3G».
W Соответствует любому символу, не являющемуся словом, эквивалент [^ A-Za-z0-9 _].
Например,/ W/или /[^ $ A-Za-z0-9 _]/соответствует ‘$’ в «150 $»
n Где n — целое положительное число. Обратная ссылка на последнюю подстроку, совпадающую с n скобками в регулярном выражении
Например,/red (,) sgreen 1/соответствует ‘red, green’ в «красный, зеленый, белый, черный». «
ooctal Восьмеричное escape-значение позволяет встраивать коды ASCII в регулярные выражения.
xhex Шестнадцатеричное escape-значение позволяет встраивать коды ASCII в регулярные выражения.

Оцените статью
nanomode.ru
Добавить комментарий