RegExp

RegExp - об'єкт регулярного виразу для співставлення з шаблонами.

Синтаксис:

літеральний вираз:

/pattern / flags

через конструктор:

new RegExp( pattern [, flags])

Параметри:

pattern - текст регулярного виразу.

flags - не обов'язково. Доступні прапорці:

Опис:

Регулярний вираз це спеціальні коди для пошуку шаблонів у рядках.

Регулярні вираз забезпечує швидкий і легкий спосіб співставлення рядків в шаблон.

Для створення об'єкту регулярного виразу використовують два способи: var reg1= new RegExp('hi\?'); reg2= /hi\?/;

Спеціальні символи:

*0 або більше
+1 або більше
?символ може бути або не бути
^початок рядка
$кінець рядка
.будь який символ крім \n i \r
\вказує що наступний символ є спеціальний
/початок і кінець шаблону регулярного виразу
\dцифра, аналог [0-9]
\Dне цифра
\wалфавітно-цифрові символи, аналог [A-Za-z0-9_]
\Wвсе крім алфавітно-цифрових символів, аналог [^A-Za-z0-9_]
\sпробіл, табуляція та інші пов'язанні з цим символи, аналог [ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​​\u202f\u205f​\u3000] .
\Sне пробіли, аналог [^ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u202f\u205f​\u3000].
\tсимвол табуляції
\rповернення каретки
\nповернення рядка
\vвертикальна табуляція
\fнова сторінка
\0null
\cXде X від A до Z. Контрольний символ у рядку. Z означає Ctrl-Z.
\xhhсимвол з кодом hh (два шістнадцяткові числа)
\uhhhh символ з кодом hhhh (чотири шістнадцяткові числа)
[xyz]набір вказаних символів
[^xyz]всі символи крім вказаних
\bмежа слова
\Bне межа слова
(x)знаходить і запам'ятовує. До збережених можна звертатися по властивості RegExp.$1..9.
(?: x)знаходить але не запам'ятовує.
x*x, нуль або більше разів
x+x, один або більше разів
x*?
x+?
співставляється як x*, x+ але з можливим ще символом
x?x, нуль або 1 раз
x(?= y)якщо за x йде y
x(?! y)якщо за x не йде y
x|yx або y
x{n}n - ціле число. якщо x n разів.
x{n,}n - ціле число. Якщо x n і більше разів.
x{n, m}n, m - ціле число. Якщо x від n до m.

Приклад:

Функція для перевірки правильності email:

/* дозволені символи від A до z, від 0 до 9 і _. Перший символ обов'язково має бути буква */ function isEmail(email){ var reg= /^[a-zA-Z][0-9a-zA-Z_]{2,21}@[a-zA-Z]{2,12}\.[a-zA-Z]{2,12}/i; return reg.test(email); } alert( isEmail('email_example@ukr.net') );

Приклад функції яка витягує з рядка email адреси:

function extractEmail(s){ var reg = /\w+\@\w+\.\w+/gi; var res=[]; while ((mas=reg.exec(s))!=null) res[res.length]=mas; return res; } alert(extractEmail('Приклад емайлу: email@gmail.com, mail@ukr.net'));

Функція перевірки правильності введення мобільного номеру в Україні:

function isTelUkr(tel){ var reg= /^\+380[0-9]{7}/i; return reg.test(tel); } alert( isTelUkr('+380961234567') );

Функція яка витягує ім'я файлу з повного шляху:

function PathExtFile(f){ var reg= /[0-9a-zA-Zа-яА-Я\s_\-+]*\.\w{1,12}$/i; return reg.exec(f); } alert( PathExtFile('C:\\path\\files назва 2.txt') ); // \\ - екрануємо символ \ alert( PathExtFile('/home/usr/bin/picture.jpg') );

Функція яка витягує каталог (папку) з повного імені файлу:

function PathExt(f){ var reg= /^[0-9a-zA-Zа-яА-Я\s_\-+\/\\:]+[\\?|\/?]/i; return reg.exec(f); } alert( PathExt('C:\\path\\files назва 2.txt') ); // \\ - екрануємо символ \ alert( PathExt('/home/usr/bin/picture.jpg') );