Привет, и добро пожаловать в этот быстрый учебник. Я проснулся до почты на сегодняшний день, будучи годовщиной года с момента присоединения к этой потрясающему сообществу, поэтому я решил что-то написать в праздновании.
Это всего лишь небольшой чит-лист, который вы можете закладывать и проверять, когда вы хотите написать регулярное выражение для этой потрясающей программы, которую вы пишете.
Я не буду охватить вас с большой информацией, поскольку я предполагаю, что вы уже сейчас, какие регулярные выражения. Если нет, они являются шаблонами, которые вы можете использовать для манипулирования текстовыми или соответствующими комбинациями символов в строках. Подробнее
Давайте погрузимся вправо в будущем.
При написании регулярных выражений мы можем использовать буквальный, как
let kofi = /ama/;
или мы можем использовать конструктор, как
let kofi = new RegExp("ama");
Оба они действительны и значат одно и то же. Таким образом, вы можете использовать любой формат.
Обратите внимание, что шаблон, используемый в конструкторе, всегда является строкой или лучше, но завернутой в кавычки. Также при использовании литералов, если любым случаем будут специальные символы, такие как вопросительные знаки, плюс знаки в вашем шаблоне, вы должны убедиться, что обратная косание “\” предшествует им, поскольку они имеют значения в регулярных выражениях, как вы собираетесь увидеть.
Я буду использовать два метода с регулярными выражениями;
- Regexp.test ();
- Regexp.exec ();
Regexp.test () – это метод, который тестирует для вашего шаблона и возвращает истинный или ложный. Если он находит ваш рисунок в данной строке, она возвращает True. Если нет, ложь.
Regexp.exec. () – это метод, который ищет матч в строке и возвращает информацию, когда он находит совпадение, как массив и нуль, когда он не находит совпадение.
Regexp.test ()
Для теста метода это то, как вы можете использовать его
/**
This finds the exact match in a string. Thus the string must contain "abc" in the exact order or sequence.
**/
/ama/.test("lamal"); //returns true
/ama/.test("almal"); //returns false
/**
This next one lets you find a range of characters in a string and is one of my favourites to use.
**/
/[196]/.test("i was born in 1996"); //returns true
//or
//This means all the numbers from 0-9, thus 0123456789.
/[0-9]/.test("i was born in 1996"); //returns true
//This returns false because there is neither 0,4 nor 3 in the string
/[043]/.test("i was born in 1996"); //returns false
Давайте поймаем передышку здесь. Помните специальных персонажей, на которых я упоминал ранее? Мы доберемся до этой реальной быстро, но сначала давайте посмотрим на пару общих ярлыков для написания выражений.
Пожалуйста, обратите внимание на эти
\d //returns true if any number is found in a given string "19" \D //returns true if there aren't any numbers in a string "the" \w //returns true if any alphanumeric is found in a given string "u2" \W //returns true if there aren't any alphanumeric in a given string "(-)" \s //returns true if there is any whitespace thus space, tab and newline " " \S //returns true if there is any non-whitespace character "khi " . //returns true for any character except a new line
Специальный характер как карет ^ используется для негативного соответствия диапазон значений. Это означает, что существует ли какое-либо другое значение в данной строке, отличной от те, которые он предшествует на рисунке, верните True.
/[^1996]/.test("199619961996") //returns false
/[^1996]/.test("1996199619967") //returns true because of 7
И сейчас нашим специальным персонажам
/**
Question marks are used for optional matching, meaning the value they come right after can be present in a given string or not and in this case was the letter "u"
**/
/favou?rite/.test("favourite"); // returns true
/favou?rite/.test("favorite"); //returns true
/**
Plus signs are used to indicate whether the value it comes after will appear once or more times in a given string
**/
/vo+/.test("volvo"); //returns true
/\d+/.test("20019"); //returns true
/\d+/.test("volvo"); //returns false
/\d+/.test(" "); //returns false
/**
A star also does the same as a plus but also returns true when there is no match too
**/
/\d*/.test("volvo"); //returns true
/**
Braces are used to make sure a pattern is represented exactly a number of times.
It can also be used to specify a range. A good example is when you want to validate dates and time. {3} means the value it comes after must appear exactly 4 times in a given string.
{1,3} means the value it comes after must be present at least once and at most 3 times. In the example below, the first set means any digit given to represent a day can be either "3" or "30" thus one or two digits as there is only up to 31 days in a month.
The next means the month can be either "4" or "12" as there is only up to 12 months in a year and the last accepts exactly 4 digits.
**/
/\d{1,2}-\d{1,2}-\d{4}/.test("3-01-1996"); //returns true
Это будет это для части первой части, часть вторая будет решать Regexp.exec () И более продвинутые регулярные выражения, которые помогут вам с легкостью создавать свои собственные выражения. Так что пока на данный момент поймай вас в ближайшее время на части два. Надеюсь, это помогло вам понять, что вы можете сделать с регулярными выражениями.
Комментарии приветствуются😊
Оригинал: “https://dev.to/augani/js-regex-cheatsheet-part-1-1njb”