KompyutaProgramu

Javascript, mifano ya mara kwa mara kujieleza, kuangalia mara kwa mara kujieleza

Kabla ya ujio wa lugha HyperText, bali, mpaka ikawa wazi kuwa hatupaswi tu kuangalia, lakini kufanya hivyo katika hali fulani, katika mahali fulani, chini ya data iliyopita kwa kiasi haki, tafuta kawaida na kuchukua nafasi ya kazi iliyoandaliwa yoyote kisasa programu. Kujenga masterpieces ya sanaa ya utafutaji katika lugha ya programu, na database wamefanikiwa katika aina ya hali ya uchaguzi katika utafiti, vifaa na taratibu kuhifadhiwa, kuchochea na njia zingine za bulky sampuli ya nyimbo uhusiano habari. muonekano wa kujieleza kwa mara mapinduzi hakuwa na kusababisha, lakini ilikuwa muhimu na rahisi ya kutafuta na badala ya habari. Kwa mfano, maneno ya kawaida JavaScript email kwa kiasi kikubwa kurahisisha usajili wa wageni, wala kupakia tovuti kutuma ujumbe kwa anwani haipo.

Kusema kwamba JavaScript kwa mara kujieleza ni bora zaidi produmannnyh Utaratibu indexOf () wito katika sura ya mzunguko wa kawaida na watoa, hawezi lakini kusema kwamba imefanya code script ni imara, lakini kidogo kueleweka kwa uninitiated, inaweza kuwa unambiguously.

Kitu RegExp = + template injini

Mara kwa mara maneno - ni injini template +. kwanza ni kweli mara kwa mara kujieleza - JavaScript kitu - RegExp, pili - hii template utendaji, kuomba kwa line. Injini kwamba kutekeleza maneno ya kawaida kwa kila lugha ya programu ni tofauti. Na ingawa si tofauti zote ni muhimu, ni lazima kuzaliwa akilini, pamoja na kuwa na uhakika wa kuangalia kwa makini kujieleza kwa mara kabla ya utekelezaji wake.

nukuu maalum wakati wa kuandika maneno ya kawaida ni rahisi kabisa kutumia na ufanisi kabisa, lakini inahitaji huduma, unadhifu na uvumilivu kutoka kwa mtengenezaji. By nukuu chati mara kwa mara kujieleza haja ya kupata kutumika. Hii si fad, ni mantiki ya utaratibu wa utekelezaji «JavaScript kilinganishi."

mara kwa mara mfano kujieleza

Kuruhusiwa chaguo mbili:

var expOne = / abc * / i;

var expTwo = RegExp ( "abc *", "i");

Kwa kawaida ni kutumika mbinu ya kwanza. Katika kesi ya pili, quotes, kwa sababu ya kutumia herufi '\', ni lazima alitoroka na sheria kwa ujumla.

'I' - flag kuonyesha "kesi insensitive". Unaweza pia kutumia 'g' bendera - «Global Search 'na' m '- mbalimbali line utafutaji.

alama ya '/' kuonyesha kawaida kutumia template.

mwanzo na mwisho wa usemi wa kawaida

'^' Amefafanua tabia (s) ambayo kwa kuanza kujieleza kwa mara, na '$' huamua ni tabia (s) lazima mwishoni. Hupaswi kuzijaribu ndani kujieleza, ambapo yana maana tofauti.

Kwa mfano,

var eRegExp = new RegExp (cRegExp, 'i');

var cRegRes = '';

var sTest = 'AbcZ';

ikiwa (eRegExp.test (sTest)) {

cRegRes + = '- Ndiyo';

} Else {

cRegRes + = '- Hakuna';

}

var dTestLine = document.getElementByID ( 'scTestLine');

dTestLine.innerHTML = 'Kujieleza /' + cRegExp + '/ kwa mstari "' + sTest + '"' + cRegRes.

kipengele 'scTestLine' itasababisha (cRegExp variable ina maana sambamba):

kujieleza / ^ AbcZ $ / kwa string "abcz" - Ndiyo

Ukiondoa 'i' bendera, matokeo yake ni:

kujieleza / ^ AbcZ $ / kwa string "abcz" - Hakuna

yaliyomo ya kujieleza kwa mara

usemi wa kawaida ni mlolongo wa wahusika, ambayo ni chini ya utafutaji. Kujieleza / QWERTY / kutafuta kuingia ni mlolongo huu:

kujieleza / QWERTY / kwa string "QWERTY" - Ndiyo

kujieleza / QWERTY / kwa string "123qwerty456" - Ndiyo

Mabadiliko '^' ni maneno:

kujieleza / ^ qwerty / kwa string "123qwerty456" - Hakuna

kujieleza / ^ qwerty / kwa string "qwerty456" - Ndiyo

Vile vile, kwa mwisho wa mstari ishara. maneno ya kawaida kuruhusu uthabiti: kwa mfano, [az], [AZ], [0-9] - barua zote za alfabeti katika kesi hii au takwimu. barua ya Urusi pia inaweza kutumika, lakini lazima makini na encoding ya masharti (ambayo ni walitaka kwamba ni walitaka) na kurasa. Mara nyingi barua Urusi, pamoja na herufi maalum, ni vyema kuweka kanuni.

Wakati kutengeneza kujieleza kwa mara unaweza kubainisha chaguo kuwepo kwa alama fulani katika eneo fulani, na idadi yao kutolewa kama ifuatavyo: '*' = 0 marudio au mara zaidi; '+' = 1 au zaidi marudio ya mara; {1} ni sawa, kama '+', {N} = marudio hasa n mara, {N,} = n marudio ya mara au zaidi; {N, m} = marudio ya n mara m.

Kutumia mabano, unaweza kubainisha tabia seti ya chaguzi. Inaonekana kama hii. [Abcd] = [ad] = kila ishara nne: 'a', 'b', 'c' au 'd'. Unaweza kutaja vinginevyo. tabia yoyote isipokuwa zile maalum katika kuweka: [^ abcd] = tabia yoyote isipokuwa 'a', 'b', 'c' au 'd'. '?' Inaonyesha kwamba katika hatua hii ni ishara haiwezi. '.' bayana tabia yoyote isipokuwa kuonyesha mstari mpya. Hii '\ n', '\ r', '\ u2028' au '\ u2029'. kujieleza '\ s * | \ S *' = '[\ s | \ S] *' inamaanisha kutafuta tabia yoyote, ikiwa ni pamoja laini mpya.

matoleo Simplified wa kujieleza mara kwa mara

kujieleza [\ s | \ S] * '- tafuta nafasi, au kukosekana, ambayo ni kwamba wote ni juu ya mstari. Katika hali hii, alama '\ s' inaonyesha nafasi, na '\ S' - hayupo.

Vile vile, unaweza kutumia '\ d' kutafuta tarakimu decimal, na '\ D' kupata tabia zisizo nambari. Nukuu '\ f', 'r' na '\ n' uhusiano na aina-feed, gari kurudi na line-feed.

tabia tab - '\ t', wima - '\ v. wajibu '\ w' anaona tabia yoyote Latin alfabeti (barua, tarakimu, na alama kistari) = [A-Za-z0-9_].

wajibu '\ W' ni sawa na [^ A-Za-z0-9_]. Hii ina maana tabia yoyote ambayo si ya barua ya alfabeti, idadi, au '_'.

Search tabia '\ 0' = search NUL wahusika. Search '\ xHH' au '\ uHHHH' = Search tabia code au HHHH HH mtiririko huo. H - hexadesimoli tarakimu.

Iliyopendekezwa maneno na coding wa kujieleza mara kwa mara

Yoyote kujieleza kwa mara ni muhimu kwa makini kipimo kwenye matoleo tofauti ya mistari.

Pamoja na uzoefu wa kujenga na makosa ya mara kwa mara kujieleza kuwa ndogo, lakini hata hivyo lazima iwe akilini kwamba maarifa yao ya sheria za kuandika maneno ya kawaida hawezi kuwa ni kweli, hasa wakati "msimu wa mara kwa mara" ni kuhamishwa kutoka lugha moja hadi nyingine.

Kuchagua kati ya classic (halisi dalili) na toleo rahisi ya kujieleza kwa mara, ni bora kupendelea kwanza. Baada ya yote, katika Classics daima alionyesha wazi kwamba wote kutafuta. Kama usemi wa kawaida au tafuta kamba na barua ya Urusi, lazima kusababisha moja usimbaji laini zote na ukurasa ambayo inafanya kazi kupata JavaScript code hufanya usemi wa kawaida.

Wakati kuna tabia ya usindikaji, mashirika yasiyo ya Kilatini alfabeti, ni mantiki ya kuzingatia ni ishara ya namba tabia, si wahusika wenyewe.

Wakati kutekeleza vigezo vya utafutaji katika JavaScript kujieleza kwa mara lazima makini checked. Ni muhimu hasa kudhibiti encoding tabia.

mabano katika kilinganishi

mabano kufafanua chaguzi kwa ishara, ambayo lazima kuwa au kuwa katika nafasi fulani, na mzima - variants mlolongo. Lakini hii ni tu kanuni ya jumla. Kutoka humo hakuna ubaguzi, lakini kuna aina mbalimbali ya matumizi.

var cRegExp = "[az] * (png | jpg | gif).";

var eRegExp = new RegExp (cRegExp, 'i');

var cRegRes = '';

var sTest = 'picture.jpg';

ikiwa (eRegExp.test (sTest)) {

cRegRes + = '- Ndiyo';

} Else {

cRegRes + = '- Hakuna';

}

matokeo:

/[az]*.(png|jpg|gif)/ kujieleza kwa mstari "picture.jpg" - Ndiyo

/^[ad][az]*.(png|jpg|gif)/ kujieleza kwa ajili ya "picture.jpg" mstari - Hakuna

/^[ad][az]*.(png|jpg|gif)/ kujieleza kwa mstari "apicture.jpg" - Ndiyo

/^[ad][az]*.(png|jpg|gif)/ kujieleza kwa ajili ya "apicture.jg" mstari - Hakuna

Ikumbukwe kwamba wote, kisha kinyota inaweza kuwa sasa mara sifuri. Hii ina maana kwamba "msimu wa mara kwa mara" inaweza kufanya kazi katika njia zisizotarajiwa angalau.

Angalia RegExp - barua pepe kupima

Wakati wa kawaida JavaScript kujieleza kupatikana njia mbili, kipimo na exec, na inaweza kutumika katika mistari vitu (String) katika njia zao (kazi): search, mgawanyiko, kubadilisha na mechi.

mtihani mbinu tayari alionyesha, utapata kuangalia usahihi wa kujieleza kwa mara. Mbinu Matokeo: kweli / uongo.

Fikiria yafuatayo JavaScript kilinganishi. Angalia barua pepe kutoka kwa idadi ya "vigumu, lakini kwa hakika":

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}) ) $ /;

kamba var sTest ='SlavaChip@sci.by 'anatoa kweli, basi kuna kamba hii ni sahihi ya barua pepe-address. ukaguzi ulifanywa na eRegExp.test (sTest).

matumizi halisi: matibabu ya barua Barua

Exec njia inayotoa mpangilio pato, piga:

var aResult = eRegExp.exec (sTest);

cRegRes = '
' + aResult.length + '
';
kwa (var i = 0; i cRegRes + = aResult [i] + '
';
}

Inakupa matokeo yafuatayo:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
undefined
sci.by
undefined
sci.by
sci.

Njia nyingine kazi vile vile. Inapendekezwa kuangalia yao nje mwenyewe. Maendeleo na matumizi ya maneno ya kawaida, ni bora ya kufanya kazi kwa vitendo, kanuni kuiga ni daima vyema hapa.

Maarufu "msimu wa mara kwa mara"

JavaScript kujieleza kwa mara kutokana na email si tu kuna watu wengi rahisi zaidi chaguzi. Kwa mfano, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Hata hivyo, mfano halisi hii itazingatia si wote embodiments ya rekodi ya barua pepe.

Bila shaka, lazima kuona uzoefu wa wafanyakazi, kuchambua jinsi wao mapendekezo kabla ya kubuni yao wenyewe juu ya JavaScript kilinganishi. Lakini kuna baadhi ya matatizo. Tusisahau kwamba JavaScript kilinganishi (mifano ya wakati wa kunakili) Unaweza kurudia wahusika muhimu: '\', '/' au quotes. Hii itasababisha makosa, ambayo unaweza kutafuta kwa muda mrefu.

Ni muhimu kuzingatia kawaida "mwelekeo binadamu." Baada rasmi JavaScript kwa mara kujieleza kwa simu, ambayo inaweza kuwa na mgeni (mtu), ni imetolewa katika njia tofauti: 123-45-67, (29) 1234567, 80291234567 au 375,291,234,567. Na ni wote idadi sawa. Spelling chati nyingi si mara zote zinazokubalika, na rigid kuwabainishia sheria kwa kuandika namba inaweza kujenga usumbufu usiokuwa wa lazima au vikwazo. Chaguo / ^ \ d [\ d \ (\) \ -] {4.14} \ d $ / i yanafaa kwa hali nyingi kuangalia namba yako ya simu.

Kama unataka kufanya JavaScript maneno ya kawaida, tu ya tarakimu hundi, hata kama kesi rahisi inahitaji ufafanuzi. Ni lazima kuchukuliwa integer au za sehemu, nukuu kisayansi, au ya kawaida, nzuri au mbaya idadi. Unaweza pia kuzingatia kuwepo kwa ishara ya fedha, idadi ya tarakimu baada ya uhakika decimal na mgawanyiko wa sehemu nzima ya idadi ya triad.

Kujieleza / ^ \ d + $ / i kuangalia namba tu na /^\d+\.\d+$/i kujieleza inaruhusu matumizi ya uhakika kuonyesha sehemu za sehemu ya idadi.

Katika JavaScript kuangalia maneno ya kawaida inaweza kutumika kuonyesha muundo wa data ngumu kuingiza, ambayo ni muhimu, hasa wakati wa kuingia maelezo, data pasipoti, na anwani ya kisheria t. D.

Angalia tarehe - rahisi na ngumu

Fikiria mwingine JavaScript kilinganishi. Mifano kukamilisha tarehe, na kwa idadi ya namba za simu kuwakilisha uchaguzi kati ya rigidity na kubadilika. Tarehe ya tukio - moja ya data muhimu, ambayo mara nyingi kuwa na unasimamiwa. Lakini fixing pembejeo katika muundo maalum: "dd-mm-yyyy 'au' d.m.gg 'mara nyingi hupelekea kutoridhika wateja. mpito kutoka pembejeo uwanja wa siku hadi mwezi, kamili ya classic HTML-fomu, hauwezi kufanyika wakati wewe kuingia tu tarakimu moja, na mchango wa pili inaweza kuwa vigumu. Kwa mfano, katika uwanja wa siku ni kuletwa 3 na idadi ya 2 haina nafasi ya kwanza, na inatokana na 32 yake, ambayo, bila shaka, kusababisha usumbufu.

Ufanisi na urahisi wa maneno ya kawaida kimsingi hutegemea ujenzi wa jumla wa mazungumzo na wageni. Katika kesi moja, ili kuonyesha tarehe ni vyema kutumia uwanja pembejeo moja ya aina, katika kesi nyingine ni muhimu kutoa kwa nyanja mbalimbali kwa ajili ya siku, mwezi na mwaka. Lakini basi yoyote ya ziada "gharama ya code" kuangalia mwaka mrefu, idadi ya miezi, idadi ya siku katika yao.

Kutafuta na badala, mara kwa mara kujieleza kumbukumbu

JavaScript badala (maneno ya kawaida) kwa kutumia njia ya String kitu, na kuruhusu sisi kupata thamani na mabadiliko mara moja. Hii ni muhimu kwa ajili ya kurekebisha makosa kuandika, kuhariri maudhui ya mashamba ya fomu na kwa kugeuza data kutoka kwa mmoja format presentation hadi nyingine.

var cRegExp = / ([-z] +) \ s ([-z] +) \ s ([-z] +) / i; // wakati wa kutafuta ni tatu 'vigezo'

var sTest = 'makala hii ni nzuri!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

var dTestLine = document.getElementByID ( 'scTestLine');

dTestLine.innerHTML = 'kujieleza' + cRegExp + 'kwa string "' + sTest + '" kugeuka' + cRegRes;

matokeo:

kujieleza / ([az] +) \ s ([az] +) \ s ([az] +) / i kwa mstari "makala hii ni nzuri!" nje: Makala ni nzuri, hii!

Unapofanya kila jozi ya mabano maduka Matokeo ya 'variable' $ n, ambapo n - idadi ya mabano jozi ($ 1, $ 2, ...). Tofauti ya kawaida, hapa variable nambari ni 1, si 0.

mapendekezo ya Jumla

Mara kwa mara kujieleza simplifies code, lakini wakati wa kuendeleza mara nyingi huleta tofauti. Unaweza kuanza na miundo rahisi na kisha alifanya kuchanganya katika maneno magumu zaidi. Unaweza kutumia huduma mbalimbali online mtihani kilinganishi au zana maalum za ndani.

chaguo bora itakuwa kujenga maktaba yao ya maneno ya kawaida na zana zao wenyewe mtihani maendeleo mapya. Hii ni njia bora ya kuimarisha uzoefu na kujifunza jinsi ya haraka kujenga kuaminika na starehe design.

Kwa kutumia marudio ya wahusika na masharti, yaani, herufi maalum '*', '+' na braces, kuonyesha idadi ya marudio lazima kuongozwa na kanuni za unyenyekevu na manufaa. Ni muhimu kutambua kwamba usemi wa kawaida mwanzo wa kazi yake, na kupata matokeo yake ni kabisa kwa nguvu ya injini ya kutumiwa na browser. Si lugha zote ni sawa na JavaScript. Kila browser inaweza kuleta yao matakwa binafsi katika tafsiri ya maneno ya kawaida.

Utangamano si kurasa tu na shuka style, kwa maneno ya kawaida, pia ina cha kufanya. ukurasa inatumia JavaScript, inaweza kuchukuliwa vizuri kazi tu wakati ina mafanikio kazi katika aina mbalimbali za vivinjari.

JavaScript, String na RegExp

By kazi haki katika ngazi ya mteja, yaani, katika browser wageni katika JavaScript, inahitaji ujuzi mkubwa wa developer. Muda wa kutosha una nafasi ya Debug JavaScript code kivinjari mwenyewe fedha au kwa msaada wa upanuzi wa tatu, wahariri code, mipango ya kujitegemea.

Hata hivyo, si kesi zote, HatiJava inaweza kushughulikia na kutoa msaada mzuri kwa developer, haraka na makosa ya kugundua, kuchunguza vikwazo. wakati kompyuta imekuwa kulenga hesabu, katika siku za nyuma. Sasa, kulipa kipaumbele maalum kwa habari na line ya vitu wamekuja kuwa na jukumu muhimu. idadi ya masharti ya chuma, na asili yao ya kweli wao wazi tu kwa wakati sahihi na mahali sahihi.

maneno ya kawaida kuimarisha uwezekano wa mistari, lakini uhitaji binafsi heshima. Debug RegExp katika kazi yake, hata kama kuna uwezekano wa kuiga, wazo si ya kuvutia sana.

Kuelewa muundo na mantiki ya RegExp kitu, maana kitu String, syntax na semantiki ya JavaScript - kweli salama code, operesheni imara ya kila ukurasa na tovuti kwa ujumla.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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