КомпютриПрограмиране

Javascript, регулярен израз: примери, проверка на регулярни изрази

Преди появата на хипертекст език, а по-скоро, докато не стана ясно, че ние не трябва просто да погледнете, но да го направят при определени условия, на определено място, в резултат на променените данни в правилната количества, обичайната за търсене и замяна функция организира всеки друг сложен програмист. Създаване на шедьоври на изкуството за търсене на програмни езици и бази данни се открояват с формите на условия за вземане на проби, оборудвани с съхранени процедури, тригери, и други средства за обемисти примерни релационна информация писти. Външният вид на регулярния израз на революцията не е довело, но това е полезен и удобен начин за намиране и замяна на информация. Например, регулярни изрази JavaScript имейл значително опростяват регистрация на посетителите, не се зареждат уебсайта изпращане на съобщения до несъществуващи адреси.

Да се каже, че JavaScript регулярен израз е много по-добри produmannnyh последователности indexOf () призовава в рамките на конвенционалното цикличен и оператори, не мога да не кажа, че го е направил кода на скрипта е компактен, но малко по-разбираема за непосветените, може да бъде еднозначно.

RegExp обект = + шаблон двигател

Регулярни изрази - това е шаблон + двигател. Първата е, всъщност е регулярен израз - JavaScript обект - регулярния израз, а вторият - на този шаблон изпълнител, да го прилага към линията. Двигатели, които реализират регулярни изрази за всеки език за програмиране са различни. И въпреки че не всички различия са значителни, то трябва да се има предвид, както и не забравяйте да проверите внимателно регулярния израз преди неговото действие.

Специално нотация, когато пишете на регулярни изрази е доста лесен за използване и доста ефективно, но изисква грижи, чистота и търпение от строителя. Чрез нотация на регулярни изрази модели трябва да свикне. Това не е прищявка, това е логиката на механизъм за прилагане на «JavaScript регулярни изрази."

образец за регулярен израз

Позволени две възможности:

Var expOne = / ABC * / I;

Var expTwo = RegExp ( "ABC *", "I");

Обикновено то се използва първия метод. Във втория случай, кавичките, защото за използване на знака "\", трябва да се избяга от общите правила.

"Аз" - обозначава "нечувствителен". Можете да използвате и знамена "G" - «Global Search" и "м" - търсене многоредово.

Символът "/" за да покаже, често да се използва шаблон.

В началото и в края на регулярния израз

В "^" определя характера (и), от която и да стартират регулярния израз, а '$' определя кой герой (и) трябва да бъде в края. Не трябва да се експериментира с тях вътре израз, където те имат различно значение.

Например,

Var eRegExp = нов RegExp (cRegExp, "I");

VAR cRegRes = '';

Var sTest = 'AbcZ;

ако (eRegExp.test (sTest)) {

cRegRes + = '- Да ";

} Друго {

cRegRes + = '- Не ";

}

Var dTestLine = document.getElementById ( "scTestLine ');

dTestLine.innerHTML = "Expression / '+ cRegExp +" / за ред "" + sTest + "" "+ cRegRes.

Елементът "scTestLine" ще доведе (cRegExp променлива има съответното значение):

изразяване / ^ AbcZ $ / за низа "abcz" - Да

Ако премахнете "аз" знаме, резултатът е:

изразяване / ^ AbcZ $ / за низа "abcz" - не

Съдържанието на регулярен израз

А изразът е поредица от символи, която е предмет на търсенето. Експресия / QWERTY / търси влизане е тази последователност:

изразяване / QWERTY / за низ "QWERTY" - Да

изразяване / QWERTY / за низ "123qwerty456" - Да

На "^" промени са израз:

изразяване / ^ QWERTY / за низ "123qwerty456" - не

изразяване / ^ QWERTY / за низ "qwerty456" - Да

По същия начин, за края на линията символ. Регулярните изрази позволяват съвместимост: например, [AZ], [AZ], [0-9] - всички букви от азбуката в този случай или цифри. Руски букви също могат да бъдат използвани, но трябва да се обърне внимание на кодирането на низове (която се иска, че се търси) и страници. Често руски букви, както и специални символи, за предпочитане е да се определят кодове.

При образуване на редовен експресия може зададени параметри за наличието на определени символи в определено място, с техния брой дадени както следва: '*' = 0 повторение или повече пъти; '+' = 1 или повече пъти повторение; {1} е същата, като "+"; {N} = повторение точно п пъти; {N,} = N повторение или повече пъти; {N, m} = повторение на п към м пъти.

Използване на скоби, можете да посочите набора знаци от опции. Тя изглежда по този начин. [Abcd] = [реклама] = всеки четири символ: "а", "б", "в" или "г". Можете да посочите друго. Всеки характер различни от описаните в комплекта: [^ ABCD] = всеки символ, различен от "а", "б", "в" или "г". "?" Това показва, че в този момент на символа не може да бъде. '.' определя всеки знак, различен от посочване на нов ред. , '\ R "Този" \ Н', '\ u2028' или '\ u2029 ". Изразът '\ е * | \ S *' = '[\ е | \ S] * "означава търсенето на всякакъв характер, включително и нови редове.

Опростени версии на регулярен израз

Изразът "[\ е | \ S] * '- търсене пространство, или липсата на такава, това е всичко, което е по линията. В този случай, символът "\ S" показва интервал, и '\ S "- негово отсъствие.

По същия начин, можете да използвате '\ г ", за да търсят знака след десетичната цифрите, и' \ D 'намерите нечислова характер. Нотация '\ е "," R "и" \ п "съответства на формата фуража, връщане на каретката и линия фуража.

Знакът за раздела - "\ Т", вертикална - '\ V ". Наименованието "\ w", че някоя от латиница на знаци (букви, цифри и знака за подчертаване) = [A-Za-z0-9_].

Наименованието "\ W" е еквивалентно на [^ A-Za-z0-9_]. Това означава всеки символ, който не е буква от азбуката, номер, или "_".

Търсене характер '\ 0' = търсене NUL знаци. Търсене '\ xHH' или '\ uHHHH "= Търсене характер код или НННН HH съответно. Н - шестнадесетична цифра.

Препоръчителна формулировка и кодиране на регулярен израз

Всеки регулярен израз е важно внимателно да се тества на различни версии на реда.

С опита за създаване на редовна грешка израз ще бъде по-малък, но все пак винаги трябва да се има предвид, че собствената им познаване на правилата на писане на регулярни изрази не може да е истина, особено когато "редовен сезон" се прехвърля от един език на друг.

Изборът между класически (точната индикация) и опростена версия на регулярен израз, по-добре е да предпочитат първата. В крайна сметка, в класиката винаги е ясно посочено, че както иска. Ако регулярния израз или низ има руски букви, трябва да води само с една кодировка на всички линии и на страницата, на която работи намерите JavaScript-код извършва регулярен израз.

Когато е налице обработка характер, които не са на латиница, има смисъл да се помисли за посочване на кодовете на характер, не на самите герои.

При изпълнението на алгоритмите за търсене в JavaScript регулярен израз трябва да бъде внимателно проверена. Особено важно е да се контролира кодировката на знаците.

Скобките в регулярния израз

Скобите определят възможностите за символ, който трябва да бъде или да не бъде в определено място, и кръг - варианти на последователност. Но това е само по принцип. От него не е изключение, но има голямо разнообразие от приложения.

Var cRegExp = "[AZ] * (PNG | JPG | GIF).";

Var eRegExp = нов RegExp (cRegExp, "I");

VAR cRegRes = '';

Var sTest = 'Picture.jpg;

ако (eRegExp.test (sTest)) {

cRegRes + = '- Да ";

} Друго {

cRegRes + = '- Не ";

}

резултати:

/[az]*.(png|jpg|gif)/ израз за линия "Picture.jpg" - Да

/^[ad][az]*.(png|jpg|gif)/ израз за линия "Picture.jpg" - не

/^[ad][az]*.(png|jpg|gif)/ израз за линия "apicture.jpg" - Да

/^[ad][az]*.(png|jpg|gif)/ израз за линия "apicture.jg" - не

Трябва да се отбележи, че всички, а след това звездичка може да присъства нула време. Това означава, че "редовен сезон" може да работи по неочакван начин най-малко.

Проверете RegExp - тестване на електронна поща

По регулярен израз JavaScript получава два метода, тестове и EXEC, и могат да бъдат използвани в линии обекти (низ) в техните методи (функции): търсене, сплит, сменете и мач.

метод на изпитване вече е доказано, тя позволява да се провери коректността на регулярния израз. Метод Резултат: вярно / невярно.

Разгледайте следните JavaScript регулярни изрази. Проверете имейл от броя на "трудно, но със сигурност":

Var eRegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s @ "] +) *) | (". + ")) @ ((\ [[0-9] {1,3} \ [0-9] {1,3} \ [0-9] {.. . 1,3} \ [0-9] {1,3}]) | (. ([а-ZA-Z \ -0-9] + \) + [а-ZA-Z] {2}) ) $ /;

низ Var sTest ='SlavaChip@sci.by "дава вярна, то тогава има този низ е правилния имейл-адрес. Одитът беше проведен от eRegExp.test (sTest).

Практическо използване: лечение на E-Mail

Exec метод осигурява изходен масив, обадете се на:

Var aResult = eRegExp.exec (sTest);

cRegRes = '
' + aResult.length + '
;
за (Var I = 0; и cRegRes + = aResult [Ь] + '
;
}

Той дава следния резултат:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
неопределен
sci.by
неопределен
sci.by
научно.

Други методи работят подобно. Препоръчително е да ги проверите сами. Разработване и използване на регулярни изрази, че е желателно да се осъществи на практика, на код копиране не винаги е препоръчително тук.

Популярни "редовния сезон"

JavaScript регулярен израз дава на имейл не само има много по-лесни варианти. Например, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Въпреки това, този вариант взема предвид не всички изпълнения на запис имейл адрес.

Разбира се, вие трябва да видите на опита на колегите си, за да анализира как предложената от тях, преди да разработят свои собствени на JavaScript регулярни изрази. Но има някои трудности. Ние не трябва да забравяме, че JavaScript регулярни изрази (примери за това кога копиране) могат да дублират основните знаци: '\', '/' или кавички. Това ще доведе до грешка, която може да търсите дълго.

Важно е да се вземат предвид обичайните "човешкото измерение". След официалното JavaScript регулярен израз за телефона, който може да бъде посетител (човек), тя се дава по различни начини: 123-45-67, (29) 1234567, 80291234567 или 375 291 234 567. И всичко това е един и същ номер. Произнасяне на множество модели не винаги е приемливо, и твърда фиксиране на правилата за писане на номера може да създаде ненужни дискомфорт или ограничения. Вариант / ^ \ г [\ г \ (\) \ -] {4,14} \ г $ / и е подходяща за повечето случаи, които проверявате телефонния си номер.

Ако искате да направите JavaScript регулярни изрази, а само цифри проверки, дори и такъв прост случай се нуждае от изясняване. Трябва да се счита за число или фракционна, научна нотация, или Нормално, положително или отрицателно число. Можете също така да се вземе предвид наличието на символа за валута, броя на цифрите след десетичната запетая и разделението на цялата страна броят на триадата.

Изразяване / ^ \ г + $ / проверя само цифри и /^\d+\.\d+$/i израз позволява използването на една точка за да покаже, дробна част от номера.

В JavaScript проверка регулярни изрази могат да се използват за обозначаване на формата на твърд входните данни, което е важно, особено при влизане в профили, паспортни данни, както и юридическите адреси т. Д.

Проверка на датите - прости до комплекса

Помислете още JavaScript регулярни изрази. Примери към днешна дата, като за броя на телефонните номера представляват избор между твърдост и гъвкавост. Дата на събитието - един от най-важните данни, които често трябва да се прилага. Но определянето на входа в определен формат: "дд-мм-гггг" или "d.m.gg" често води до клиента недоволство. Преходът от областта на ден за месец вход, пълен с класически HTML форма, не може да се осъществи, когато въведете само една цифра, а втория вход може да бъде трудно. Така например, в областта на деня, в който бе въведен 3 и следващия номер 2 не замества първата, и се дължи на нейната 32, което, разбира се, ще предизвика неудобство.

Ефективност и удобство на регулярни изрази по същество зависи от общото изграждане на диалог с посетителя. В един случай, да се посочи датата, на която е препоръчително да се използва един полето за въвеждане на формата, в другия случай е необходимо да се предвидят различни области, за ден, месец и година. Но след това всички допълнителни "разходи за код" за проверка на високосна година, броят на месеца, броят на дните в тях.

Търсене и замяна, регулярен израз памет

JavaScript замени (регулярни изрази) с помощта на метода на String обект, и да ни позволи да се намери стойността и незабавно да го промените. Това е полезно за коригиране на печатни грешки, редактирате съдържанието на полетата на формата и за конвертиране на данни от един формат в друг представяне.

Var cRegExp = / ([A-Z] +) \ S ([A-Z] +) \ S ([A-Z] +) / I; // при търсене са трите "променливи"

Var sTest = 'тази статия е добре! ";
Var cRegRes = sTest.replace (cRegExp "$ 2, $ 3, $ 1");

Var dTestLine = document.getElementById ( "scTestLine ');

dTestLine.innerHTML = "експресия" + cRegExp + 'за низ "" + sTest + "превръщат:' + cRegRes;

резултат:

експресионни / ([AZ] +) \ S ([AZ] +) \ S ([AZ] +) / и за линията "тази статия е добре!" от: статията е добра, това!

При извършване на всяка двойка скоби съхранява резултата от "променливата" $ п, където п - брой на скоба двойки ($ 1, $ 2, ...). За разлика от конвенционалните, тук променлива номерация е 1, не 0.

Общи препоръки

Регулярният израз опростява кода, но времето за разработване на това често е от значение. Можете да започнете с прост дизайн и след това направени да се комбинират в по-сложни изрази. Можете да използвате различни онлайн услуги за тестване на регулярни изрази или специални местни инструменти.

Най-добрият вариант ще създаде своя собствена библиотека на регулярни изрази и собствените си инструменти, за да тестват нови разработки. Това е най-добрият начин за консолидиране на опита и да научите как да се изгради бързо надежден и удобен дизайн.

Използването на повторение на символи и низове, което означава, специални символи "*", "+" и тиранти, което показва броя на повторенията трябва да се ръководи от принципите на простота и целесъобразност. Важно е да се осъзнае, че регулярен израз в началото на работата си, както и да получите резултата е изцяло в правомощията на двигателя използва от браузъра. Не всички езици са еквивалентни на JavaScript. Всеки браузър може да предяви своите лични предпочитания в тълкуването на регулярни изрази.

Съвместимост не само на страниците и на стилове е, за регулярни изрази, тя също трябва да се направи. Страницата използва JavaScript, може да се счита за добре функциониращ само когато се работи успешно на различни браузъри.

JavaScript, String и RegExp

Чрез правилната работа на ниво клиент, който е в браузъра на посетителя в JavaScript, тя изисква висока квалификация на разработчика. Достатъчно дълго, имате възможност за отстраняване на грешки на JavaScript код на браузъра собствени средства или с помощта на трети лица, разширения, код редактори, независими програми.

Въпреки това, не всички случаи, дебъгер може да се справи и да осигуряват добра поддръжка за предприемача, откриване на бърз грешка, откриване на затрудненията. Времената, когато компютърът е фокусирани върху изчисленията, в далечното минало. Сега, обърнете специално внимание на информационните и линейни обекти са дошли да играят значителна роля. Броят на стоманени струни, и истинската им същност те се прояви само в точното време и точното място.

Регулярните изрази засилване на възможността за линии, но се нуждаят от самоуважение. Debug RegExp в работата си, дори и ако е възможно да се симулира, не много интересна идея.

Разбиране на структурата и логиката на обекта RegExp, което означава, обект String, синтаксиса и семантиката на JavaScript - истинска безопасен и сигурен код, стабилна работа на всяка страница и на сайта като цяло.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 bg.delachieve.com. Theme powered by WordPress.