KompyuterlarDasturlash

Javascript, muntazam ifoda misollar, muntazam ifoda tekshirish

Bu biz faqat qarash kerak emas, lekin ba'zi bir shartlar ostida shunday qilishga, muayyan bir joyda, o'zgartirilgan ma'lumotlar ostida o'ng miqdorda, odatdagidek qidirish va almashtirish, deb ochiq-oydin bo'ldi qadar gipermatnli tili kelishi, lekin oldin emas, balki, vazifasi har qanday murakkab tashkil dasturchi. dasturlash tillarida san'at qidiruv asarlari yaratish va ma'lumotlar bazasi nusxa olish sharoitlarini shakllari a'lochi, saqlangan ishlab chikish, trigger va hajmi katta namuna İlişkisel axborot yo'llarni boshqa vositalar bilan jihozlangan. inqilob muntazam ifoda paydo olib kelmadi, ammo u ma'lumotlarni topish va almashtirish uchun foydali va qulay yo'l edi. Misol uchun, elektron pochta sezilarli mehmonlar ro'yxatga soddalashtirish JavaScript muntazam iboralar, yo'q manzillar xabarlarni yuborish veb-sayt yuk yo'q.

Agar JavaScript muntazam ifoda () indexOf ancha yaxshi produmannnyh ketliklar bo'ladi an'anaviy, uslub va operatorlari doirasida chaqiradi, deb aytish uchun, lekin bu skript kodi ixcham, lekin uninitiated uchun tushunarli oz qildi, deb aytish mumkin emas, noma'lum bo'lishi mumkin.

Ob'ekt RegExp = + Andoza mexanizmi

Muntazam iboralar - bir Andoza + vosita. chiziq, uni qo'llash, bu Andoza ijrochisi - JavaScript ob'ekt - - RegExp, ikkinchi, birinchi navbatdagi ifoda aslida. Har bir dasturlash tili uchun oddiy so'zlar amalga oshirish Dvigatellar farq qiladi. emas, balki butun farqlar muhim bo'lgan bo'lsa-da, u nazarda tutish, shuningdek, diqqat bilan oldin uning ishlashi uchun muntazam ravishda ifoda tekshirish uchun ishonch hosil bo'lishi kerak.

oddiy so'zlar yozma alohida qayd foydalanish juda oson va juda samarali, lekin shaxslar g'amxo'rlik, obodligiga sabr talab qiladi. sanoq sistemasida tomonidan muntazam ifoda naqsh ko'nikishim kerak. Bu «JavaScript oddiy so'zlar amalga oshirish mexanizmini mantiq, modaga emas."

muntazam ifoda namuna

Ikki imkoniyatlari ruxsat:

var expOne = / abc * / i;

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

Odatda, birinchi usuli ishlatiladi. Ikkinchi holda, tirnoq, chunki belgi foydalanish "\", u umumiy qoidalar bilan qochib kerak.

«Men - bayrog'i" beparvo ishni "ko'rsatgan. «Global Izlash» va «m» - - bir nechta qatorni Izlash Siz ham bayroqlarni 'G' foydalanishingiz mumkin.

ramzi "/" Andoza foydalanish uchun umumiy ko'rsatish uchun.

boshlanishi va muntazam ifoda oqibati

«^» Oxirida bo'lishi kerak bo'lgan belgilar (lar) belgilaydi belgi (lar) qaysi muntazam ifoda boshlash uchun, va, '$' belgilaydi. Siz ular bir xil ma'noga ega bo'lgan so'z, ichki ular bilan tajriba kerak emas.

Misol uchun,

var eRegExp = yangi RegExp (cRegExp, «i»);

var cRegRes = '';

var sTest = 'AbcZ';

Agar (eRegExp.test (sTest)) {

cRegRes + = '- Ha';

} Else {

cRegRes + = '- Yo'q';

}

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

dTestLine.innerHTML = 'tushuntirish /' + cRegExp + '/ qatorni uchun "+ sTest +" "+ cRegRes.

element »scTestLine» olib keladi (cRegExp o'zgaruvchan bir mos ma'noga ega):

ifoda / ^ AbcZ $ / string »abcz" uchun - Ha

Agar 'i "bayrog'ini olib tashlash bo'lsa, natija hisoblanadi:

ifoda / ^ AbcZ $ / string »abcz" uchun - Yo'q,

Oddiy so'z tarkibi

A muntazam ifoda qidirish predmeti bo'lgan belgilar majmuasini, deb. Tushuntirish / qwerty / kiritish uchun izlayotgan bu oqibat hisoblanadi:

ifoda / qwerty / "qwerty" kanop uchun - Ha

ifoda / qwerty / "123qwerty456" kanop uchun - Ha

"^" O'zgarishlar so'zlar:

ifoda / ^ qwerty / "123qwerty456" kanop uchun - Yo'q,

ifoda / ^ qwerty / "qwerty456" kanop uchun - Ha

Xuddi shunday, yo'l ramzi oxirida uchun. Muntazam iboralar mustahkamlik uchun imkon beradi: masalan, [AZ], [AZ], [0-9] - Bu holda yoki raqamlarda alifbo barcha harflar. Rossiya harflar ham foydalanish mumkin, lekin (terilgan terilgan) satrlari kodlash va sahifalar e'tibor qilish kerak. Ko'pincha rus harflar, shuningdek maxsus belgi, u kodlari o'rnatish uchun afzal bo'ladi.

ularning soni quyidagicha berilgan bilan muntazam ifoda, muayyan bir joyda ma'lum ramzlar borligi uchun variantlarni tanlashingiz mumkin shakllantirish qachon: "*" = 0 takrorlash yoki bir necha marta; '+' = 1 yoki undan ko'p takrorlash marta; {1} '+' kabi, bir xil bo'ladi; {N} = takrorlash aniq n marta; {N,} = n takrorlash marta yoki undan ko'proq; m marta n {N, m} = takrorlash.

tirsakdan foydalanib, siz variantlari belgilangan belgi ko'rsatish mumkin. Bu kabi ko'rinadi. [ABCD] = [reklama] = har to'rt belgi: «a», «b», «v» yoki «d». Siz aks holda ko'rsatish mumkin. to'plamda belgilangan boshqa har qanday belgi: [^ abcd] 'A' dan boshqa har qanday belgi, «b», «v», yoki «D '=. "?" Bu nuqtada ramzi bo'lishi mumkin emas, deb ko'rsatadi. . " yangi qatorni ko'rsatuvchi boshqa biron-bir belgi belgilaydi. Bu "\ n", "\ r», «\ u2028» yoki «\ u2029". ifoda "\ S * | \ S * | newlines jumladan biron-bir belgi, izlash anglatadi = '* [\ S \ b]".

muntazam ifodasi sodda versiyalari

qidirish maydoni yoki yo'qligi uning, barcha bu chiziq ustida bo'ladi - | ifoda '* [\ S \ b] ". uning yo'qligi - bu holda, ramzi "\ b» bir oraliq va '\ S »ko'rsatadi.

Xuddi shunday, sen o'nlik raqamlar qo'ng'iroq qilish uchun "\ d» foydalanishingiz mumkin, va '\ D "nodavlat raqamli belgi topish. Izoh Agar "\ f», «r» va «\ n" shakli-ozuqa, satırbaşı va yo'l-ozuqa mos.

yorliq paydo - "\ t", vertikal - «\ v. ko'rsatish '\ w' har qanday Lotin alifbosi belgi (harf, raqamlar, va pastki chiziq belgisini) = [A-zA-z0-9_] topadi.

"W \ 'belgi [^ A-zA-z0-9_] tengdir. Bu alifbo, son, yoki "_" bir harf emas, har qanday belgi degan ma'noni anglatadi.

Qidiruv belgi "\ 0 '= qidiruv NUL belgilar. Qidiruv "\ xHH» yoki «\ uHHHH '= Qidiruv belgi kodi yoki hhhh HH mos ravishda. H - hexadecimal raqamli.

Tavsiya tahrir va muntazam ifoda kodlash

Har qanday muntazam ifoda diqqat qatorlar turli versiyalarida sinovdan uchun muhim ahamiyatga ega.

kichik bo'ladi navbatdagi ifoda xato yaratish tajribasi bilan, lekin shunga qaramay, har doim yozishni muntazam so'zlar qoidalarini o'z bilim "navbatdagi mavsumda" bir tilda uzatiladi, ayniqsa, haqiqiy bo'lishi mumkin emas ekanligini yodda tutish lozim.

Classic (aniq ko'rsatma) va muntazam ifoda soddalashtirilgan versiyasi o'rtasida tanlash, uni birinchi afzal yaxshiroqdir. Axir, klassik har doim aniq, ham uringan ko'rsatiladi. muntazam ifoda yoki qidirish so'zi rus harflarini bo'lsa, bitta tilbiriktirganini barcha chiziqlar va muntazam ifoda bajaradi JavaScript-kod topish faoliyat qaysi sahifada olib kelishi kerak.

bir belgi qayta ishlash, non-Lotin alifbosi bor bo'lsa, u belgi kodlari emas, balki belgilar o'zlari bir ishora ko'rib mantiqiy.

JavaScript muntazam ifoda qidirish algoritmlarni amalga oshirish paytida diqqat bilan nazorat qilish kerak. Bu belgilar kodlash nazorat qilish, ayniqsa, muhim ahamiyatga ega.

muntazam ifoda Qavslar

natija variantlarining - qavs bo'lishi kerak yoki muayyan joyda bo'lmasligi mumkin ramzi, va davra uchun imkoniyatlar belgilaydi. Lekin bu faqat bir umumiy qoida hisoblanadi. undan hech istisno bor, lekin ilovalar turli bor.

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

var eRegExp = yangi RegExp (cRegExp, «i»);

var cRegRes = '';

var sTest = 'picture.jpg';

Agar (eRegExp.test (sTest)) {

cRegRes + = '- Ha';

} Else {

cRegRes + = '- Yo'q';

}

natijalari:

liniyasi "picture.jpg" uchun /[az]*.(png|jpg|gif)/ ifoda - Ha

"Picture.jpg" liniyasi uchun /^[ad][az]*.(png|jpg|gif)/ ifoda - Yo'q,

liniyasi "apicture.jpg" uchun /^[ad][az]*.(png|jpg|gif)/ ifoda - Ha

"Apicture.jg" liniyasi uchun /^[ad][az]*.(png|jpg|gif)/ ifoda - Yo'q,

Bu butun deb, keyin bir yulduzcha nol marta mavjud bo'lishi mumkin ta'kidlash lozim. Bu "muntazam mavsumda" kamida kutilmagan yo'l bilan ishlash mumkin, degan ma'noni anglatadi.

RegExp tekshiring - test elektron pochta

o'rniga va o'yin, qidiruv, Split: ikki usullari, test va Exec olingan va chiziqlar, ularning usullari ob'ektlar (string) (vazifalari) foydalanish mumkin muntazam JavaScript ifoda da.

test usuli allaqachon u muntazam ifoda to'g'riligini tekshirish imkonini beradi, namoyish etildi. Usuli Natija: yolg'on / rost.

Quyidagi JavaScript oddiy so'zlar o'ylab ko'ring. "Albatta, qiyin, lekin" soni Email tekshiring:

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

Agar mag'lubiyatga var sTest ='SlavaChip@sci.by "keyin, bu tor to'g'ri email-manzili bor bo'ladi, haqiqiy beradi. audit eRegExp.test (sTest) tomonidan amalga oshirildi.

Amaliy foydalanish: E-mail davolash

Exec usuli chiqish qator beradi, qo'ng'iroq:

var natija = eRegExp.exec (sTest);

cRegRes = '
"+ aResult.length +'
';
{(; I cRegRes + = natija [i] +
';
}

Bu quyidagi natijani beradi:

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

Boshqa usullar Xuddi shunday ishlaydi. Bu o'zingizni ularni nazorat qilish tavsiya etiladi. Taraqqiyot va muntazam so'zlar foydalanish, uni amalda ishlashi uchun kerak bo'lgan, kodni nusxa ko'chirish bu erda har doim aqlli emas.

Mashhur "muntazam mavsumda"

JavaScript muntazam ifoda yana ko'plab oson imkoniyatlari bor nafaqat elektron pochta berilgan. Misol uchun, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Biroq, bu timsol hisobga email manzili rekord emas, balki butun tadbirlarni oladi.

Albatta, siz JavaScript muntazam so'zlar o'z dizayni uchun avval ularning taklif qanday tahlil qilish, hamkasblari tajribasi ko'rish kerak. Lekin ayrim qiyinchiliklar bor. "/", "\" Yoki qo'shtirnoq: Biz JavaScript muntazam so'zlar (nusxa qachon misollar) muhim belgi nusxa mumkin unutmasligimiz kerak. Bu sizga uzoq qidirish mumkin xato, olib keladi.

Bu hisobga odatdagidek olish muhim ahamiyatga ega "inson o'lchami". mehmon (shaxs) bo'lishi mumkin telefon uchun rasmiy JavaScript muntazam ifoda so'ng, u turli xil yo'llar bilan beriladi: 123-45-67, (29) 1234567, 80291234567 yoki 375291234567. Va bu hammasi bir xil raqam ekan. necha naqsh Sintaksis har doim maqbul emas va keraksiz noqulayliklarni yoki cheklashlar yaratish mumkin raqamlarini yozish uchun qoidalar qattiq mustahkamlash. Majburiy emas / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i siz telefon raqamini tekshiring ko'p hollarda uchun mos keladi.

Agar JavaScript oddiy so'zlar, faqat raqam elementlari qilish bo'lsangiz, hatto bunday oddiy hodisa tushuntirish talab qiladi. Bu butun son yoki kasr, ilmiy qayd, yoki, oddiy ijobiy yoki salbiy soni ko'rib chiqilishi kerak. Siz ham hisobga valyuta belgisi mavjudligini, o'nlik nuqtadan keyingi uy sonini va triadasining kuni qator butun qismi bo'linish olishi mumkin.

Tushuntirish / ^ \ d + $ / i faqat raqamlar tekshirish va /^\d+\.\d+$/i ifoda sonining kasr qismini ko'rsatish uchun bir nuqta foydalanishga imkon beradi.

JavaScript Muntazam iboralar tekshirish rejimlarni, pasport ma'lumotlari, va huquqiy manzillari t kirishda, ayniqsa, muhim ahamiyatga ega qattiq kiritish ma'lumotlar formatini ko'rsatish uchun foydalanish mumkin. D.

xurmo tekshiring - kompleksi oddiy

boshqa JavaScript oddiy so'zlar o'ylab ko'ring. telefon raqamlari sonini sifatida sanaga misollar, qattiqlik va moslashuvchan o'rtasida tanlov vakili. Tadbir Sana - tez-tez berilishi kerak muhim ma'lumotlar, biri. Lekin ma'lum bir shaklda hissa ekranga: "dd-mm-yyyy» yoki «d.m.gg" tez-tez mijoz norozilik olib keladi. Agar faqat bitta raqam kiriting qachon kun-to-oy kiritish sohasida o'tish, klassik HTML-shaklda to'liq, sodir bo'lmaydi, va ikkinchi Kirish qiyin bo'lishi mumkin. Misol uchun, kunning sohasida 3 joriy etildi va keyingi soni 2 birinchi o'rnini olmaydi, va albatta, noqulay sabab bo'ladi, unga 32, tegishli bo'ladi.

Samaradorligi va muntazam so'zlar qulaylik aslida mehmon muloqot umumiy qurilish bog'liq. Bir holda, sana ko'rsatish uchun boshqa holatda u kun, oy va yil davomida turli sohalardagi ta'minlash uchun zarur bo'lgan, shakli bir kiritish maydonini foydalanish tavsiya etiladi. Ammo keyin hech qanday qo'shimcha "kodi xarajatlar", kabisa yili oy sonini, ularda kun sonini tekshirish uchun.

, Muntazam ifoda xotirani qidirish va almashtirish

JavaScript String ob'ekt usuli yordamida (oddiy so'zlar) o'rniga, va bizga qiymatini topish va darhol, uni o'zgartirish uchun imkon beradi. Bu ariza maydonlarining tarkibini tahrir, typing xatolarni tuzatish uchun va bir taqdimot shaklida ma'lumotlarni aylantirish uchun foydalidir.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; chiqayotganingizda // uch "o'zgaruvchilar" bo'ladi

var sTest = 'Bu maqola yaxshi!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

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

dTestLine.innerHTML = 'ifodasi "+ cRegExp +" "+ sTest +" o'girib: "string" + cRegRes;

Natijada:

ifoda / ([AZ] +) \ s ([az] +) \ s ([az] +) / i liniyasi uchun "Bu maqola yaxshi!" Chiqish: maqola, bu, yaxshi!

qavs juft soni ($ 1, $ 2, ...) - Qavslar har juft o'qiyotganda "o'zgaruvchan" ham natija $ n, n saqlaydi. an'anaviy farqli o'laroq, bu yerda o'zgaruvchan raqamlashi 1, 0 bo'lmasa.

Umumiy tavsiyalar

Muntazam ifoda kodni soddalashtiradi, lekin vaqt ko'pincha farq qiladi rivojlantirish. Siz ko'proq murakkab so'zlar kirib birlashtirish qilib, keyin oddiy namunalari bilan boshlash mumkin. Siz oddiy so'zlar yoki maxsus mahalliy vositalari sinash uchun turli onlayn xizmatlaridan foydalanishingiz mumkin.

eng yaxshi variant muntazam so'zlar o'z kutubxona va yangi ishlanmalarni sinash uchun o'z vositalari yaratadi. Bu tajriba mustahkamlash va tez, ishonchli va qulay dizayn qurish uchun qanday o'rganish uchun eng yaxshi yo'lidir.

takrorlanish soni soddaligi va muvofiqligi tamoyillari amal qilishi lozim ko'rsatib, belgilar va torli, ya'ni, maxsus belgilar "*", "+" va qavs qaytarilmasligi foydalanish. Bu uning ishi boshidan bir muntazam ifoda tushunib, va natija brauzer tomonidan ishlatiladigan vosita kuchida butunlay olish uchun muhim ahamiyatga ega. Emas, balki butun tillar JavaScript teng bo'ladi. Har bir brauzer o'z olib kelishi mumkin shaxsiy xohishingizga muntazam so'zlar ta'birini.

Moslik muntazam so'zlar uchun, u ham, albatta, bor, nafaqat sahifalar va uslublar jadvallari hisoblanadi. sahifa JavaScript, bir muvaffaqiyatli brauzerlar bir xil ishlagan faqat yaxshi faoliyat deb atash mumkin foydalanadi.

JavaScript, torli va RegExp

JavaScript Mehmonning brauzerida, deb mijoz darajasida, to'g'ri ish bilan qasamki, ishlab chiquvchi yuqori mahorat talab qiladi. etarli vaqt JavaScript-kod brauzer o'z mablag'lari yoki uchinchi tomon kengaytmali, kodi muharrirlar, mustaqil dasturlari yordamida ayıklanacağı imkoniga ega.

Biroq, barcha hollarda, ayıklayıcı band va, o'tadigan aniqlash shaxslar, tez xato aniqlash uchun yaxshi qo'llab-quvvatlash mumkin. marta kompyuter uzoq o'tmishda, hisob-kitoblar qaratilgan qilingan paytda. axborot va yo'l ob'ektlar muhim rol o'ynaydi keldim uchun endi, alohida e'tibor qaratmoqda. po'lat torli soni va ularning haqiqiy tabiati, ular faqat to'g'ri vaqtda va to'g'ri joyda namoyon.

Muntazam iboralar liniyalari ehtimoli mustahkamlash, lekin o'zini hurmat talab qiladi. Debug RegExp uning ishida, bu mumkin bo'lsa ham, juda qiziq emas g'oyasini taqlid qilish.

haqiqiy, ishonchli va xavfsiz kodi, har bir sahifasi barqaror ishlashini va butun sayt - ob'ekt string, sintaksisi va JavaScript semantik ma'no, RegExp ob'ekt tuzilishi va mantiq tushuniladi.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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