RegExp - об'єкт регулярного виразу для співставлення з шаблонами.
літеральний вираз:
/pattern / flags
через конструктор:
new RegExp( pattern [, flags])
pattern - текст регулярного виразу.
flags - не обов'язково. Доступні прапорці:
u підтримують лише браузери Microsoft.
Регулярний вираз це спеціальні коди для пошуку шаблонів у рядках.
Регулярні вираз забезпечує швидкий і легкий спосіб співставлення рядків в шаблон.
Для створення об'єкту регулярного виразу використовують два способи:
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 | нова сторінка |
\0 | null |
\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|y | x або 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') );