КомпјутериПрограмирање

Јавасцрипт, редовни примери израз, проверите регуларни израз

Пре појаве језика хипертексту, већ радије, док није постало јасно да не треба само гледати, али да то учине под одређеним условима, на одређеном месту, под измењеним подацима у правим количинама, нормалне функције за претрагу и замену уређен било софистициран програмер. Створи ремек-дела уметности потрази у програмским језицима, а база истакао у форми услова узорковања, опремљен ускладиштених процедура, окидача и других средстава гломазан узорака релациона праћења информација. Појава регуларног израза до револуције нису довели, али то је био користан и погодан начин да се пронађу и замени информације. На пример, регуларни изрази ЈаваСкрипт е поједноставити регистрацију посетилаца, не учитавају веб-сајт шаље поруке непостојећим адресама.

Мало је рећи да ЈаваСцрипт регуларни израз је много боље продуманнних секвенце индекОф () позива у оквиру конвенционалне цикличним и оператере, не може а да не кажем да је направио сценарио код је компактан, али мало разумљив неупућене, може бити недвосмислено.

Објецт регуларног израза + = шаблон мотор

Регуларни изрази - је шаблон + ЕНГИНЕ. Први је заправо регуларни израз - ЈаваСцрипт објекат - за регуларног израза, други - то шаблон извођач, примењују се на линију. Мотори које спроводе регуларне изразе за сваку програмском језику су различити. И мада нису све разлике су значајне, треба имати у виду, као и будите сигурни да пажљиво проверите регуларни израз пре њеног рада.

Посебан обележавање приликом писања регуларне изразе је прилично једноставан за употребу и веома ефикасна, али захтева бригу, уредност и стрпљење од стране произвођача. По ознакама регуларни израз обрасци треба да се навикну на. Ово није хир, то је логика механизма за имплементацију «ЈаваСцрипт регуларне изразе."

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

Дозвољена две опције:

вар екпОне = / абц * / и;

вар екпТво = РегЕкп ( "абц *", "и");

Обично је некада први метод. У другом случају, цитати, јер да користите карактер '\', мора да се избегне општим правилима.

'И - Застава која је означавала "мала слова". Такође можете да користите Заставе 'Г' - «Глобал Сеарцх 'и' м '- мулти-линија за претрагу.

Симбол '/' да укаже уобичајено да се користе шаблон.

Почетак и крај регуларног израза

Тхе '^' дефинише карактер (и) од којих за почетак регуларни израз, као и '$' одређује карактер који (а) мора бити на крају. Не би требало да експериментише са њима унутар израза, где имају другачије значење.

На пример,

вар еРегЕкп = нев РегЕкп (цРегЕкп, 'и');

вар цРегРес = '';

вар СТест = 'АбцЗ';

иф (еРегЕкп.тест (СТест)) {

цРегРес + = '- Да';

} Елсе {

цРегРес + = '- Но';

}

вар дТестЛине = доцумент.гетЕлементБиИд ( 'сцТестЛине');

дТестЛине.иннерХТМЛ = 'Израз /' + цРегЕкп + '/ за ред "' + СТест + '"' + цРегРес.

Елемент "сцТестЛине 'ће резултирати (цРегЕкп променљива има одговарајуће значење):

Израз / ^ АбцЗ $ / за низ "абцз" - Да

Ако уклоните 'и' заставу, резултат је:

Израз / ^ АбцЗ $ / за низ "абцз" - Без

Садржај регуларним изразом

Регуларни израз је низ знакова, која је предмет претресања. Израз / КВЕРТИ / у потрази за улазак је ова секвенца:

Израз / КВЕРТИ / фор стринг "кверти" - Да

Израз / КВЕРТИ / фор стринг "123кверти456" - Да

У '^' промјене су изрази:

Израз / ^ КВЕРТИ / фор стринг "123кверти456" - Без

Израз / ^ КВЕРТИ / фор стринг "кверти456" - Да

Слично, за крај линије симбола. Регуларни изрази омогућавају доследност: на пример, [АЗ], [Аризона], [0-9] - сва слова абецеде у овом случају или личности. Руски слова такође могу да се користе, али треба обратити пажњу на кодирање низова (што се тражи да се тражи) и странице. Често руске слова, као и специјалне карактере, пожељно је да подесите кодове.

При формирању регуларни израз може навести опције за присуство одређених симбола у одређеној локацији, уз њихов број дат како слиједи: '*' = 0 понављање или више пута; '+' = 1 или више понављања пута; {1} је исто као '+'; {Н} = понављање тачно н пута; {Н,} = н понављања или више пута; {Н, м} = понављање н до м пута.

Користећи заграде, можете одредити карактер сет опција. То изгледа овако. [Абцд] = [ад] = сваке четири симбол: 'а', 'б', 'ц' ор 'д'. Можете друкчије одређено. Сваки знак осим оних наведених у сету: [^ абцд] = ани осим 'А' карактера, 'б', 'ц' или 'д'. '?' То указује да је у овом тренутку симбол не може бити. '.' одређује било који знак осим што указује на нови ред. Ова '\ н', '\ р', '\ у2028' или '\ у2029'. Израз '\ с * | \ Н *' = '[\ с | \ Н] *' означава потрагу за било који карактер, укључујући и нове линије.

Поједностављене верзије регуларних израза

Израз '[\ с | \ С] *' - сеарцх спаце, или његовог недостатка, то је све што је на линији. У том случају, симбол "\ с" означава простор, а '\ с' - његовом одсуству.

Слично томе, можете да користите '\ д' то тражи децималне, и '\ Д "наћи не-нумерички карактер. Нотација '\ ф', 'р' и '\ н' одговарају обрасцу хранити, царриаге ретурн и ред наниже.

Картица карактер - '\ Т', вертикална - '\ у'. Ознака "\ в 'пронађе било коју латиницу карактер (слова, цифара и доња црта) = [А-За-З0-9].

Ознака "\ В 'је еквивалентна [^ А-За-З0-9]. То значи било који знак који није слово азбуке, број, или "_".

карактер сеарцх '\ 0' = сеарцх нул карактера. Тражи '\ кХХ' или '\ ухххх' = сеарцх број карактера или ХХХХ ХХ респективно. В - ХЕКС број.

Препоручена текст и кодирање регуларног израза

Сваки регуларни израз је важно да пажљиво тестирани на различитим верзијама редова.

Са искуством стварања редовне грешку израз ће бити мањи, али ипак увек треба имати на уму да је њихова знања о правилима писања регуларних израза не може бити истина, поготово када је "регуларна сезона" је прешао из једног језика на други.

Избор између класичног (тачан индикације) и поједностављена верзија редовног израза, боље је да воле први. Уосталом, у класицима увек јасно указују да су и тражили. Ако је регуларни израз или Сеарцх Стринг имају руске слова, треба да доведе до појединачних кодирају свим линијама и странице на којој послује наћи ЈаваСцрипт-кода врши регуларни израз.

Када постоји обрада карактер, не-латинично писмо, има смисла да се узме у обзир назнаку кодова карактер, а не самих ликова.

Приликом реализације алгоритама за претрагу у ЈаваСцрипт регуларни израз треба пажљиво проверити. Посебно је важно контролисати кодирање знакова.

Заграде у регуларним изразом

Заграде дефинишу опције за симбол, која мора бити или не може бити у одређеном мјесту, и круг - варијанте секвенци. Али ово је само генерално правило. Од тога нема изузетак, али постоји широк спектар апликација.

вар цРегЕкп = "[аз] * (пнг | јпг | гиф).";

вар еРегЕкп = нев РегЕкп (цРегЕкп, 'и');

вар цРегРес = '';

вар СТест = 'пицтуре.јпг';

иф (еРегЕкп.тест (СТест)) {

цРегРес + = '- Да';

} Елсе {

цРегРес + = '- Но';

}

Резултати:

/[аз]*.(пнг|јпг|гиф)/ израз за линије "пицтуре.јпг" - Да

/^[ад][аз]*.(пнг|јпг|гиф)/ израз за "пицтуре.јпг" линије - Нема

/^[ад][аз]*.(пнг|јпг|гиф)/ израз за линије "апицтуре.јпг" - Да

/^[ад][аз]*.(пнг|јпг|гиф)/ израз за "апицтуре.јг" линије - Нема

Треба напоменути да су сви, онда се звездица могу бити присутни нула пута. То значи да је "регуларна сезона" можда неће радити на неочекиване начине најмање.

Проверите РЕГЕКСП - тестирање емаил

На редовној изражавања ЈаваСцрипт добијене две методе, тест и заповедника, и може се користити у линијама објектима (стринг) у својим методама (функције): претраживача, Сплит, заменити и меч.

Метода испитивања је већ показала, да вам да проверите исправност регуларним изразом. Метод Резултат: истина / лаж.

Размотрите следеће ЈаваСцрипт регуларне изразе. Проверите е-пошту од броја "тешко, али сигурно":

вар еРегЕкп = /^(([^<>()\[\]\\.,;:\с@"]+(\.[^<>()\[\]\\.,;:\с @ "] +) *) | (". + ")) @ ((\ [[0-9] {1,3} \ [0-9] {1,3} \ [0-9] {.. . 1,3} \ [0-9] {1,3}]) | (. ([а-зА-З \ -0-9] + \) + [а-зА-З] {2}) ) $ /;

стринг вар СТест ='СлаваЦхип@сци.би 'даје истина, онда је то стринг исправна е-адреса. Ревизија је спровео еРегЕкп.тест (СТест).

Практична примена: третман е-Маил

Екец метода даје излазни низ, позовите:

вар аРесулт = еРегЕкп.екец (СТест);

цРегРес = '<бр/>' + аРесулт.ленгтх + '<бр/>';
фор (вар и = 0; и <аРесулт.ленгтх; и ++) {
цРегРес + = аРесулт [и] + '<бр/>';
}

То даје следеће резултате:

9
Слава.Цхип@сци.би
Слава.Цхип
Слава.Цхип
.Цхип
недефинисан
сци.би
недефинисан
сци.би
Сци.

Друге методе рада на сличан начин. Препоручује се да их проверите сами. Развој и коришћење регуларних израза, пожељно је да ради у пракси, код копирање није увек препоручљиво овде.

Популарни "регуларна сезона"

Јавасцрипт регуларни израз дати на е-маил не само постоји много лакше опције. На пример, /^[\в-\.]+@[\в-]+\.[аз]{2,3}$/и. Међутим, ово решење узима у обзир не све варијанте записника емаил адреса.

Наравно, морате видели искуство колега, да се анализира како им је предложио пре да дизајнирају сами на ЈаваСцрипт регуларних израза. Међутим, постоје неке тешкоће. Не треба заборавити да је ЈаваСцрипт регуларни изрази (примери када копирате) могу дуплирати основне знакове: '\', '/' или наводника. То ће довести до грешке, које можете да пронађете дуго.

Важно је узети у обзир уобичајену "људску димензију." После формалног ЈаваСцрипт регуларни израз за телефон, која може бити посетилац (лице), даје се на различите начине: 123-45-67, (29) 1234567, 80291234567 или 375291234567. И то је све исти број. Правопис вишеструке моделе није увек прихватљиво, и крута фиксација правила за писање бројева може створити непотребну нелагодност или ограничења. Опција / ^ \ Д [\ Д \ (\) \ -] {4,14} \ г $ / и је погодан за већину случајева проверите свој број телефона.

Ако желите да се ЈаваСцрипт регуларне изразе, само цифре чекове, чак и такав једноставан случај захтева разјашњење. Треба узети у обзир цео или фракционом, научне нотација или нормал, позитивна или негативна број. Такође можете узети у обзир постојање симбола валуте, број цифара после децималног зареза и поделу целог дела броја на тријаде.

Израз / ^ \ Д + $ / И провери само бројеве и /^\д+\.\д+$/и израз омогућава коришћење тачке за означавање фракцијску део броја.

У ЈаваСцрипт проверу регуларне изразе може да се користи да означи формат хард улазних података, што је важно, поготово приликом уласка профила, пасош податке и правне адресе т Д.

Проверите датуме - најједноставнијих до најсложенијих

Размислите још ЈаваСцрипт регуларне изразе. Примери до данас, као и за број телефонских бројева представља избор између крутости и флексибилности. Датум одржавања - један од основних података, који често морају да се примењују. Али фиксирање улаз у одређеном формату: "дд-мм-ииии 'или' д.м.гг 'често доводи до незадовољства потрошача. Прелаз из улазне области дан-за-месец, пун класичне ХТМЛ-форми, не може се одржати када уђете само једну цифру, а други улаз може бити тешко. На пример, у области дана када је уведен 3, а следећи број 2 не замењује први, а приписује њеној 32, што је, наравно, неће изазвати непријатности.

Ефикасност и погодност регуларних израза у суштини зависи од општег изградњи дијалога са посетиоцима. У једном случају, да укаже на датум препоручљиво је да се користи једно поље за унос облика, у другом случају неопходно је да се обезбеди за различите области за дан, месец и годину. Али онда сваки додатни "трошкове код" да се провери да преступна година, број месеци, број дана у њих.

Тражи и замени, регуларни израз меморију

замени ЈаваСцрипт (регуларне изразе) користећи метод Стринг објекта, и омогућавају нам да пронађу вредности и одмах променити. Ово је корисно за исправљање грешака у куцању, мењати садржај поља формулара и за претварање података из једног презентације формата у други.

вар цРегЕкп = / ([а-з] +) \ с ([а-з] +) \ с ([а-з] +) / и; // при претраживању су три "варијабле"

вар СТест = 'овај чланак је добро!';
вар цРегРес = сТест.реплаце (цРегЕкп "$ 2, $ 3, $ 1");

вар дТестЛине = доцумент.гетЕлементБиИд ( 'сцТестЛине');

дТестЛине.иннерХТМЛ = 'израз' + цРегЕкп + 'за низ "' + СТест + '" турн:' + цРегРес;

резултат:

Израз / ([аз] +) \ с ([аз] +) \ и ([АЗ] +) / И за линију "Овај чланак је добро!" од: чланак је добро, ово!

Приликом обављања сваки пар заграда чува резултат у 'променљива' $ н, где је н - број носача парова ($ 1, $ 2, ...). За разлику од конвенционалних, овде променљива нумерација 1, није 0.

Опште препоруке

Регуларни израз поједностављује код, али време да се развије често прави разлику. Можете почети са једноставним дизајном и затим је комбиновати на више сложених израза. Можете да користите различите услуге на мрежи за тестирање регуларне изразе или специјалне локалне алата.

Најбоља опција ће створити своју библиотеку регуларним изразима и властите алате за тестирање нових дешавања. Ово је најбољи начин да се консолидује искуства и да науче како да брзо изградити поуздан и удобан дизајн.

Користећи понављање карактера и гудаче, који је, специјални карактери '*', '+' и трегери, што указује на број понављања треба да се руководе принципима једноставности и сврсисходности. Важно је да се схвати да регуларним изразом на почетку свог рада, а да резултат је потпуно у власти мотора користи бровсер. Нису сви језици су еквивалентни ЈаваСцрипт. Сваки претраживач може довести њихове личне преференције у тумачењу регуларних израза.

Компатибилност није само страница и стил листова, до регуларних израза, такође треба да уради. Страница користи ЈаваСцрипт може се сматрати добро функционише само када је успешно радио на разним претраживача.

ЈаваСцрипт стринг и регуларног израза

Поред десне посао на нивоу клијента, који је, у претраживачу посетиоца у ЈаваСцрипт, то захтева велике способности програмера. Довољно дуго имате прилику да Дебуг ЈаваСцрипт код претраживача сопствених средстава или уз помоћ независних проширења, уредника кода, независног програма.

Међутим, није све случајеве, за отклањање грешака може носити и пружити добру подршку за програмера, детекцију брзо грешке, открије уска грла. Времена када је рачунар фокусирана на прорачунима, у далекој прошлости. Сада, посебну пажњу обратите на информације и линија предмети су дошли да играју значајну улогу. Број челичних жица, и њихова права природа се манифестује само у право време и право место.

Регуларни изрази појачавају могућност линија, али захтевају самопоштовање. Дебуг регуларног израза у свом раду, чак и ако је могуће да симулира, не превише занимљиву идеју.

Разумевање структуре и логику регекп објекта, што значи објекат Стринг, синтаксу и семантику ЈаваСцрипт - прави сигурну и безбедну код, стабилан рад сваке странице и сајт у целини.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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