Найдите в тексте именно то, что вам нужно, с помощью регулярных выражений
.test()
принимает регулярное выражение, применяет его к строке и возвращает логическое значение. .replace()
заменяет подстроку другой подстрокой и возвращает измененную строку.
.match()
извлекает фактические совпадения, которые вы нашли в возвращаемом массиве.
Шпаргалка
Соответствие буквальным строкам
/test/
ищет буквальное совпадение строки.
const str = 'test'; const reg = /test/; reg.test(str); // return true
ИЛИ (|
) в буквальных строках
Найдите несколько шаблонов с помощью оператора ИЛИ |
.
const str = 'second'; const reg = /first|second/; reg.test(str); // return true
Игнорировать регистр (i
)
Используйте i
для поиска без учета регистра.
const str = 'firstClass'; const reg = /firstclass/i; reg.test(str); // return true
Использовать глобальный (g
)
Используйте g
для поиска или извлечения шаблона более одного раза.
const str = 'test test'; const reg = /test/g; str.match(reg); // return ['test', 'test']
Сопоставьте что-либо с подстановочным знаком (подстановочный знак, точка, точка)
Подстановочный знак .
соответствует любому одному символу.
const str = 'The string is strong'; const reg = /str./; str.match(reg); // return ['stri']
Сопоставьте один символ с несколькими возможностями []
Найдите буквальный шаблон с некоторой гибкостью с классами символов, используя /[abei]/
.
const str = 'The tree is strong'; const reg = /t[hr]e/gi; str.match(reg); // ['The', 'tre']
Сопоставьте буквы алфавита
Найдите буквенный алфавитный шаблон с помощью [a-z]
.
const str = 'The'; const reg = /[a-z]+/; str.match(reg); // ['he']
Соответствие одиночным символам не указано
Используйте [^ae]
для наборов символов, которым вы не хотите соответствовать.
const str = 'Test'; const reg = /[^ae]/; reg.test(str); // true
Соответствие символов, встречающихся один или несколько раз
Используйте +
для сопоставления символов, которые встречаются хотя бы один раз и могут повторяться.
const str = 'the text, the apple'; const reg = /the+/g; str.match(reg); // ['the', 'the']
Соответствует символам, которые встречаются ноль или более раз
Звездочка *
соответствует символам, которые встречаются ноль или более раз.
const str = 'greedy'; const reg = /e*/; reg.test(str); // true
Сопоставление начальных шаблонов строк
Каретка ^
используется для поиска шаблонов в начале строк.
const str = 'Test'; const reg = /^A/i; reg.test(str); // false
Соответствие шаблонам конечной строки ($
)
Используйте $
для поиска шаблонов в конце строк.
const str = 'test-id-sDb4r'; const reg = /-\w{5}$/; const result = str.replace(reg, ''); // 'test-id'
Подберите все буквы и цифры
Используйте \w
как сокращение для классов символов, которые равны /[A-Za-z0–9_]/
. Включите символ подчеркивания (_
).
const str = 'sDb4r'; const reg = /\w/; reg.test(str); // true
Подбирайте все, кроме букв и цифр
\W
поиск противоположен буквенно-цифровому и равен /[^A-Za-z0–9_]/
.
const str = 'sDb4r?'; const reg = /\W/; str.match(reg); // ['?']
Соответствовать всем числам / d
/d
используется для поиска цифровых символов и равен /[0–9]/
.
const str = 'sDb4r?'; const reg = /\d/; str.match(reg); // ['4']
Сопоставьте все нечисловые
/D
используется для поиска нецифровых символов и равен /[^0-9]/
.
const str = 'sDb4r?'; const reg = /\D/g; str.match(reg); //['s', 'D', 'b', 'r', '?']
Соответствовать пробелу \s
Ищите пробелы с помощью \s
. Этот шаблон соответствует не только пробелам, но и символам возврата каретки, табуляции, перевода страницы и новой строки. Это похоже на \r\t\f\n\v
.
const str = 'test string'; const reg = /\s/; str.replace(reg, ' new '); // 'test new string'
Соответствовать непробельным символам \S
Ищите непробельные символы с помощью \S
. Этот шаблон не будет соответствовать пробелам, возврату каретки, табуляции, подаче формы и символам новой строки. Это похоже на ^ \r\t\f\n\v
.
const str = 'test string'; const reg = /test\S/; reg.test(str); // false
Найти символы с отложенным соответствием (?
)
?
находит наименьшую возможную часть строки, удовлетворяющую шаблону регулярного выражения.
const str = '<h1>Title</h1>'; const reg = /<.*?>/; str.match(reg); // ['<h1>']
Укажите верхнее и нижнее количество совпадений
Вы можете указать нижнее и верхнее количество шаблонов с помощью спецификаторов количества. Спецификаторы количества используются в фигурных скобках: ({}). Вы помещаете два числа между фигурными скобками для нижнего и верхнего числа выкройки.
const str = 'gooogle
'; const str2 = 'gogle'; const reg = /go{2,3}gle/; reg.test(str); // true reg.test(str2); // false reg.test(str1); // true
Укажите только меньшее количество совпадений
Чтобы указать меньшее количество шаблонов, оставьте первое число после запятой.
const str = 'google'; const str1 = 'gogle'; const str2 = 'goooogle'; const reg = /go{2,}gle/; reg.test(str); // true reg.test(str1); // false reg.test(str2); // false
Укажите точное количество совпадений
Чтобы указать определенное количество шаблонов, просто поместите это число в фигурные скобки.
const str = 'heel'; const str1 = 'heeeeel'; const reg = /he{2}l/ reg.test(str); // true reg.test(str1); // false
Проверить все или ничего
Иногда шаблоны, которые вы хотите найти, могут иметь части, которые могут существовать, а могут и не существовать.
const str = 'favourite'; const str1 = 'favorite'; const str2 = 'faver'; const reg = /favou?/; reg.test(str); // true reg.test(str1); // true reg.test(str2); // false
Положительный (?=…
) и отрицательный (?!…
) прогноз
Lookaheads - это шаблоны, которые сообщают JavaScript, что нужно смотреть вперед в вашей строке, чтобы проверить шаблоны в дальнейшем.
const str = 'abs123'; Positive const reg = /(?=\w{2,6})/ reg.test(str); // true Negative const reg1 = /(?=[a-z]{3})(?!\d{3})/ reg1.test(str); // true
Спасибо за прочтение! Надеюсь, это поможет вам.