регэксп, регулярка, рег
регэксп, регулярка, рег
/^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[--!#-[]-]|[- -])*")@(?:(?:[a-z-яА-ЯёЁ0-9](?:[a-z-яА-ЯёЁ0-9-]*[a-z-яА-ЯёЁ0-9])?.)+[a-z-яА-ЯёЁ0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[--!-ZS-]|\[- -])+)])$/i
const regexp = new RegExp('pattern', 'flags');
const regexp = /pattern/flags;
\d || [0-9]
\s || [\t\r\n\f\v]
\w || [A-Za-z0-9_]
\D || [^0-9]
\S || [^\t\r\n\f\v]
\W || [^A-Za-z0-9_]
'a'.length // 1 или 2 байта
'🖖'.length // 2 или 4 байта
Флаг u
- включает специальный режим для работы с юникодом
p{...} - специальный класс который работает в режиме unicode
/./.test('spongebob'); // true
/./.test('\r\n'); // false
/./s.test('\r\n'); // true
/^star wars$/.test('star wars'); // true
/^star wars$/.test('star wars\nforever'); // false
/^star wars$/m.test('star wars\nforever'); // true
/\bSkillbox\b/.test('Skillbox or GeekBrains'); // true
/\bSkillbox\b/.test('GeekSkillbox'); // false
/\bSkill\b/.test('Skillбокс'); // true
'150.000'.replace(/./g, ' '); // ' '
'150.000'.replace(/\./g, ' '); // '150 000'
[ \ ^ $ . | ? * + ( )
/[qwerty]/.test('rty'); // true
[A-G\d]
/[а-я]/.test('ё'); // false
/[.]/.test('найдется всё!'); // false
/[^ничего]/.test('всё'); // true
/[ничего^]/.test('^');
/Skil*/.test('Ski'); // true
/Skil+/.test('Skilllll'); // true
/colou?r/.test('color'); // true
/colou?r/.test('colour'); // true
/kek{7}/.test('kekkkkkkk'); // true
/kek{1,7}/.test('kek'); // true
/kek{3,}/.test('kekkkkkk'); // true
/lo{,5}l/.test('loooool');
('oooo').match(/o+/); // oooo
('хочу "найти" все "слова" в "кавычках"').match(/".+"/g);
'"найти" все "слова" в "кавычках"'
('хочу "найти" все "слова" в "кавычках"').match(/".+?"/g);
'"найти" "слова" "кавычках"'
('oooo').match(/o+?/);
'o'
('oooo').match(/o*?/);
''
/(\+7|8)(\d3)\d7/.exec('88002000600');
['88002000600', '8', '800'];
/(?<region>\+7|8)(?<code>\d3)\d7/.exec('88002000600');
groups.region // 8; groups.code // 800
/(?:\+7|8)(?:\d3)\d7/.exec('88002000600');
['88002000600'];
"Just don't it".match(/['"](.+?)['"]/g) // "Just don'
"Just don't it".match(/(['"])(.+?)\1/g); // "Just don't it"
"Just don't it".match(/(?<quote>['"])(.+?)\k<quote>/g);
regexp.exec(str); // null || ['все совпадение', $1, $2]
regexp.test(str); // Boolean
str.match(regexp); // null || ['все совпадение', $1, $2]
str.replace(regexp, replacement);
str.search(regexp); // -1 || позиция совпадения
str.split(regexp);
str.replace(regexp, replacement);
В строке замены можно использовать спецсимволы: