КомпьютерПрограмчлалын

Javascript, тогтмол илэрхийлэл жишээ, тогтмол илэрхийлэл шалгах

гипертекст хэл цагаас ч өмнө биш харин энэ нь бид зүгээр л тухайн газарт өөрчлөлт мэдээллийн дагуу зөв хэмжээгээр, харагдах гэж байх ёстой биш, харин тодорхой нөхцөлд Ингэхийн тулд ердийн хайлт болон солих нь тодорхой болсон он хүртэл үйл ажиллагаа ямар нэгэн нарийн зохион байгууллаа програмист. програмчлалын хэл дээр уран хайлт хотыг бий болгох, мэдээллийн баазын дээж авах нөхцөл хэлбэрээр тэргүүлжээ хадгалагдаж журам, Шалтгаан болон том түүвэр харилцааны мэдээлэл замуудын бусад хэрэгслээр тоноглогдсон. хувьсгалын тогтмол үзэл бодлоо илэрхийлэх дүр төрх болж хараахан чадаагүй, гэхдээ энэ нь мэдээллийг олж, солих нь ашигтай бөгөөд тохиромжтой арга юм. Жишээ нь, тогтмол илэрхийлэл и-мэйл ихээхэн жуулчдын бүртгэлийг хялбаршуулах JavaScript, огт байхгүй хаяг руу мессеж илгээх вэб дуудаж байна.

нь JavaScript тогтмол илэрхийлэл илүү produmannnyh дараалал юм indexOf () нь ердийн мөчлөгт болон оператор хүрээнд дууддаг гэж хэлэх, гэхдээ энэ нь скрипт код нь авсаархан, гэхдээ бага зэрэг uninitiated нь ойлгомжтой хийсэн гэж хэлж чадахгүй, хоёрдмол утгагүйгээр байж болно.

Объект RegExp = + загвар хөдөлгүүр

Энгийн илэрхийлэл - нь загвар + хөдөлгүүр юм. шугаманд хэрэглэнэ, энэ загвар гүйцэтгэгч - JavaScript объект - - RegExp, хоёр дахь эхлээд тогтмол илэрхийлэл нь үнэндээ юм. програмчлалын хэл бүр тогтмол илэрхийлэл хэрэгжүүлэх хөдөлгүүр өөр өөр байдаг. Биш, харин бүх ялгаа нь чухал ач холбогдолтой байдаг хэдий ч, энэ нь оюун ухаанд, хариуцна байх ёстой, түүнчлэн анхааралтай үйл ажиллагааны өмнө тогтмол илэрхийлэх шалгаж байх нь чухал.

тогтмол илэрхийлэл бичих тусгай тэмдэглэгээ ашиглах нь маш хялбар, маш үр дүнтэй байдаг, гэхдээ энэ нь хөгжүүлэгчид нь тусламж, нягт нямбай байдал ба тэвчээр шаарддаг. тэмдэглэгээгээр тогтмол илэрхийлэл хэв маяг хэрэглэж байх хэрэгтэй. Энэ нь «JavaScript тогтмол илэрхийлэл хэрэгжүүлэх механизм нь логик байна, энэ нь шинэ зүйл гарч биш юм."

тогтмол илэрхийлэл хэв маяг

Зөвшөөрөгдсөн хоёр сонголт:

VAR expOne = / ABC * / би;

VAR expTwo = RegExp ( "ABC *", "би");

Ерөнхийдөө эхний аргыг ашигласан. Хоёр дахь тохиолдолд, ишлэл, учир нь зан чанарыг нь ерөнхий дүрмийн дагуу оргон зайлсан байх ёстой ашиглах '\'.

"Би" - туг "мэдрэлгүй хэргийг" харуулж байна. «Глобал Search 'болон' M '- - олон шугам хайлт Та бас Flags" г "ашиглаж болно.

бэлэг тэмдэг "/" нь загварыг ашиглах нь түгээмэл харуулж байна.

эхлэл ба тогтмол үзэл бодлоо илэрхийлэх эцсийн

'^' Эцэст байх ёстой бөгөөд тэмдэгт (үүд) ийг тодорхойлдог тэмдэгт (ууд) нь ердийн илэрхийллийг эхлэх, болон '$' тодорхойлдог. Та үзэл бодлоо чөлөөтэй илэрхийлэх, тэд өөр өөр утгаар ойлгоно дотор тэдэнтэй хамт туршиж болохгүй.

Жишээ нь,

VAR eRegExp = шинэ RegExp (cRegExp, "Би ');

VAR cRegRes = '';

VAR STest = 'AbcZ';

бол (eRegExp.test (Stest)) {

cRegRes + = '- Тийм ээ';

} Өөр {

cRegRes + = '- Үгүй';

}

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

dTestLine.innerHTML = 'илэрхийлэл /' + cRegExp + '/ дараалан "+ Stest +'" '+ cRegRes.

элемент "scTestLine" хүргэнэ (cRegExp хувьсагч харгалзах утгыг байна):

илэрхийлэл / ^ AbcZ $ / мөр "abcz" нь - Тийм ээ

Хэрэв та "Би" туг устгах бол, үр дүн нь:

илэрхийлэл / ^ AbcZ $ / мөр "abcz" нь - Үгүй

тогтмол үзэл бодлоо илэрхийлэх агуулга

А тогтмол илэрхийлэл хайлт хамаарах тэмдэгтийн дараалал юм. Илэрхийлэл / QWERTY / оруулгыг хайж энэ дараалал юм:

илэрхийлэл / QWERTY "QWERTY" / мөр нь - Тийм ээ

илэрхийлэл / QWERTY / мөр нь "123qwerty456" - Тийм ээ

'^' Өөрчлөлт илэрхийлэл нь:

илэрхийлэл / ^ QWERTY / мөр нь "123qwerty456" - Үгүй ээ

илэрхийлэл / ^ QWERTY "qwerty456" / мөр нь - Тийм ээ

Үүний нэгэн адил, шугам бэлэг тэмдэг төгсгөлд байна. Энгийн илэрхийлэл тууштай зөвшөөрөх, жишээ нь: [а-я], [AZ], [0-9] - энэ тохиолдолд, эсвэл тоо нь цагаан толгойн бүх үсгийг. ОХУ-ын захидал бас ашиглаж болох боловч (хайж байна хайж байна) үгнүүдийн кодчилол ба хуудасны анхаарал хандуулах ёстой. Ихэнхдээ ОХУ-ын захидал, түүнчлэн тусгай тэмдэгт, энэ кодыг тогтоох нь зүйтэй юм.

тэдний тоо дараах байдлаар өгөгдсөн тогтмол илэрхийлэл, тухайн байршил тодорхой тэмдэглэгээ байгаа эсэхийг тохируулгуудыг зааж өгч болно бүрдүүлэх үед: '*' = 0 давтлага буюу түүнээс дээш удаа; '+' = 1 буюу түүнээс дээш давтлага удаа; {1} '+' гэх мэт ижил байна; {N} = давтлага яг N удаа, {N,} = N давтлага дахин буюу түүнээс дээш, м-ийн дахин Н {N, M} = давтлага.

хаалт ашиглан та сонголтуудын багц тэмдэгт зааж өгч болно. Энэ нь иймэрхүү харагдаж байна. [ABCD] = [зар] = дөрвөн бэлэг тэмдэг болгон: "а", "б", "в", эсвэл "D". Та өөрөөр зааж өгч болно. багц-д зааснаас бусад аливаа тэмдэгт: [^ ABCD] 'А' бусад ямар нэгэн шинж, "B", "C", эсвэл "D" =. "?" Энэ үед тэмдэг байж болохгүй гэдгийг харуулж байна. '.' шинэ мөр илтгэх өөр ямар ч тэмдэгт заана. Энэ нь '\ N', '\ R', '\ u2028' эсвэл '\ u2029 ". илэрхийлэл нь '\ S * | \ S *' | ямар зан чанар, нар шинэ мөрийг зэрэг хайлт хэлнэ = '* [\ S \ S] ".

тогтмол үзэл бодлоо илэрхийлэх хялбаржуулсан хувилбарууд

хайлтын орон зай, эсвэл дутагдалтай түүний, тэр бүхнийг шугам дээр байгаа юм - | илэрхийлэл '* [\ S \ S] ". Түүний байхгүй - энэ тохиолдолд бэлэг тэмдэг '\ S' зай, болон '\ S "харуулж байна.

Үүний нэгэн адил, та оронтой тоогоор хайх '\ D "ашиглаж болно, мөн' \ D 'бус тоон тэмдэгтийг олж болно. Тэмдэглэгээ '\ е "," R "болон" \ N' хэлбэр, тэжээл, тэрэг эргэж ирэх болон шугам тэжээл тохирно.

таб тэмдэгт - '\ т ", босоо -' \ V". тэмдэглээс '\ W' ямар нэг Латин цагаан толгойн тэмдэгт (үсэг, цифр, болон доогуур тэмдгийг) = [A-За-z0-9_] олдог.

'W \' тэмдэглээс [^ А-За-z0-9_] тэнцэх юм. Энэ нь үсэг, тоо, буюу "_" гэсэн захидал биш юм ямар ч шинж гэсэн үг юм.

Хайлт тэмдэгт '\ 0' = хайлт NUL тэмдэгт. Хайлтын '\ xHH' эсвэл '\ uHHHH' = Хайлтын тэмдэгт код буюу HHHH Өрх тус тус. H - арван зургаатын оронтой.

Зөвлөмж болгож буй үг хэллэг, тогтмол үзэл бодлоо илэрхийлэх кодлох

Ямар ч тогтмол илэрхийлэл анхааралтай эгнээ янз бүрийн хувилбарууд дээр туршсан нь чухал юм.

тогтмол илэрхийлэл алдаа бий болгох бага байх болно туршлагатай ч гэсэн үргэлж санаж байх ёстой ердийн илэрхийлэл бичиж дүрмүүдийг өөрийн мэдлэг "тогтмол улиралд" нь нэг хэлнээс шилжүүлсэн ялангуяа үнэн байж болохгүй гэж.

Сонгодог (тодорхой заалт) болон тогтмол үзэл бодлоо илэрхийлэх эрх нь хялбаршуулсан хувилбар хооронд сонгох, энэ нь эхний илүүд үздэг нь илүү дээр юм. Эцсийн эцэст, сонгодог үргэлж тодорхой аль аль нь хүссэн гэж заасан байна. тогтмол илэрхийлэл эсвэл хайх мөр ОХУ-ын захидал байгаа бол, нэг кодчилол нь бүх шугам, аль тогтмол илэрхийлэл гүйцэтгэдэг JavaScript кодыг олж үйл ажиллагаа явуулж хуудас хүргэж байх ёстой.

нь тэмдэгт боловсруулах, төрийн бус Латин цагаан толгой байгаа үед энэ нь тэмдэгт код биш, тэмдэгт өөрсдөө тухай заалтыг авч үзэх нь ач холбогдолтой.

JavaScript тогтмол бодлоо илэрхийлэх хайлтын алгоритмыг хэрэгжүүлэх үед анхааралтай шалгаж байх хэрэгтэй. Энэ тэмдэгт кодчилол хяналт тавих нь чухал юм.

тогтмол бодлоо илэрхийлэх хаалтад

дараалал төрлүүдтэй - хаалт тэмдэг байх ёстой, эсвэл тодорхой нэг газар байж болохгүй, дугуй боломжийг тодорхойлно. Гэхдээ энэ нь зөвхөн ерөнхий дүрэм юм. Хэрэв ямар ч онцгой тохиолдол байдаг, харин програмууд нь олон янзын байдаг.

VAR cRegExp = "[а-я] * (PNG | JPG | GIF).";

VAR eRegExp = шинэ RegExp (cRegExp, "Би ');

VAR cRegRes = '';

VAR STest = 'picture.jpg';

бол (eRegExp.test (Stest)) {

cRegRes + = '- Тийм ээ';

} Өөр {

cRegRes + = '- Үгүй';

}

үр дүн:

мөр нь "picture.jpg" гэж /[az]*.(png|jpg|gif)/ илэрхийлэл - Тийм ээ

"Picture.jpg" шугамын /^[ad][az]*.(png|jpg|gif)/ илэрхийлэл - Үгүй

мөр нь "apicture.jpg" гэж /^[ad][az]*.(png|jpg|gif)/ илэрхийлэл - Тийм ээ

"Apicture.jg" шугамын /^[ad][az]*.(png|jpg|gif)/ илэрхийлэл - Үгүй

Энэ бүхний дараа нь од тэг удаа байж болох тэмдэглэх нь зүйтэй. Энэ нь "байнгын улиралд" наад зах нь санаанд оромгүй арга замаар ажиллах болно гэсэн үг юм.

RegExp шалгах - тест захиа

, Хайлт, хуваах солих, тэмцээн: хоёр арга, сорил болон ажиллуулах авч, тэдний арга барил шугам объект (String) (үйл ажиллагаа) ашиглаж болно тогтмол JavaScript илэрхийлэх үед.

туршилтын арга нь аль хэдийн батлагдсан та тогтмол илэрхийлэл үнэн зөв эсэхийг шалгах боломж олгодог байна. Арга Үр дүн: / үнэн худал.

Дараах JavaScript тогтмол илэрхийллийг авч үзье. "Хэцүү, гэхдээ мэдээж" тооноос И-мэйл шалгах:

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

мөр VAR Stest ='SlavaChip@sci.by "үнэн өгдөг дараа нь тэнд энэ мөр нь зөв и-мэйл хаяг юм. Аудитын eRegExp.test (Stest) явуулсан байна.

Практик хэрэглээ: И-мэйл эмчилгээ

Ажиллуулах арга гаралт агуулдаг дуудах:

VAR aResult = eRegExp.exec (Stest);

cRegRes = '
' + aResult.length + '
';
{(;, Би cRegRes + = aResult [би] + '
';
}

Энэ нь дараах үр дүнг өгдөг:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
тодорхойгүй
sci.by
тодорхойгүй
sci.by
SCI.

Бусад арга нь адил ажилладаг. Энэ нь тэднийг өөрийгөө шалгаж зөвлөж байна. Хөгжил, тогтмол илэрхийлэл ашиглах, энэ нь бодит амьдрал дээр ажиллах нь зүйтэй, код хуулбарлах энд байхгүй үргэлж зөвлөж байна.

Алдартай "тогтмол улиралд"

JavaScript тогтмол илэрхийлэл олон хялбар сонголт байдаг нь зөвхөн и-мэйл өгсөн. Жишээ нь, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Гэхдээ энэ нь биелэл и-мэйл хаяг рекорд биш, бүх embodiments анхааралдаа авдаг.

Мэдээж та JavaScript тогтмол илэрхийллийг хvсэх өөрсдийн төлөвлөх өмнө хэрхэн санал дүн шинжилгээ хийх, хамтран ажиллагсад туршлагыг харах байх ёстой. Гэвч зарим бэрхшээл байдаг. "/" Ишлэл '\', эсвэл: Бид JavaScript тогтмол илэрхийлэл (хуулах үед жишээ) чухал тэмдэгт хувилж болно гэдгийг мартаж байх ёстой биш. Энэ нь алдаа, та урт хайж болно хүргэж болно.

Энэ нь харгалзан ердийн авах нь чухал юм "хүний хэмжээс." утас, зочин (хүн) байж болно албан ёсны JavaScript тогтмол үзэл бодлоо чөлөөтэй илэрхийлэх дараа, энэ нь өөр өөр аргаар өгсөн байна: 123-45-67, (29) 1234567, 80291234567 буюу 375291234567. Мөн энэ нь бүгд ижил тоо юм. олон хэв маягийг зөв бичгийн үргэлж биш хүлээн зөвшөөрөгдсөн тоо бичих шаардлагагүй таагүй, эсвэл хязгаарлалт үүсгэж болно дүрэм хатуу савны бөгөөд. Сонголт / ^ \ г [\ г \ (\) \ -] {4,14} \ г $ / би та өөрийн утасны дугаараа шалгах ихэнх тохиолдолд тохиромжтой.

Та JavaScript тогтмол илэрхийлэл нь зөвхөн цифр шалгалт болгохыг хүсэж байгаа бол, ийм энгийн тохиолдол ч тодруулга шаарддаг. Энэ нь бүхэл тоо буюу бутархай, шинжлэх ухааны тэмдэглэгээ, эсвэл хэвийн эерэг ба сөрөг тоо гэж үзнэ. Та мөн валютын тэмдэг байгааг, таслалын ард оронтой тоо, гурвалсан зарчим дээр тооны бүхэл хэсгийн хэлтсийг анхааралдаа авч болно.

Илэрхийлэл / ^ \ г + $ / Би зөвхөн тоо шалгаж, /^\d+\.\d+$/i илэрхийлэл тооны бутархай хэсгийг заахын тулд нэг цэгт ашиглах боломжийг олгодог.

JavaScript-д тогтмол илэрхийлэл шалгах профайл, паспортын мэдээлэл, хуулийн хаяг т орж байх үед хэцүү өгөгдөл оруулах, ялангуяа чухал ач холбогдолтой юм хэлбэрийг зааж ашиглаж болно. Д.

он сар өдөр шалгах - цогцолбор энгийн

Өөр JavaScript тогтмол илэрхийллийг авч үзье. утасны дугаарын тоо хувьд сүүлийн жишээ, уян хатан бус, уян хатан хоёрын хооронд сонголт болж байна. үйл явдлын огноо - чухал мэдээллийг ихэвчлэн удирдах ёстой нэг юм. Гэвч тодорхой форматын дагуу оролтыг засах: "DD мм-ийн-YYYY 'эсвэл' d.m.gg" нь ихэвчлэн хэрэглэгчийн сэтгэл хангалуун бус хүргэдэг. өдөр-сарын оролтын салбарт шилжих, сонгодог HTML-хэлбэрийн бүрэн, та нэг л цифр орох үед газар авч чадахгүй бөгөөд хоёр дахь нь оролтын хэцүү байж болох юм. Жишээ нь, өдөр салбарт тэр 3-ийг танилцуулж, дараагийн тоо нь 2-р анх удаа солих биш, мөн түүнийг 32, мэдээж хэрэг, хүндрэл учруулах болно холбоотой байна.

Үр ашигтай, байнгын илэрхийллийн тохиромжтой үндсэндээ зочин нь яриа хэлэлцээ ерөнхий барилга хамаарна. нэг тохиолдолд хугацааг заахын тулд энэ нь зүйтэй хэлбэрээр нэг оролтын талбарыг ашиглан, бусад тохиолдолд энэ нь өдөр, сар, жил янз бүрийн салбарын хангах шаардлагатай юм. Харин дараа нь ямар нэгэн нэмэлт "кодын зардал" үсрэлт жил, сар тоог тэдэнд буй, хоногийн тоог шалгах.

тогтмол илэрхийлэл санах ой хайх, солих,

JavaScript (тогтмол илэрхийллийг) мөр объектын аргыг ашиглан сольж, АНУ-ын үнэ цэнийг олж, нэн даруй өөрчлөх боломжийг олгодог. Энэ нь алдаа гарахаас засах хэлбэр салбарт агуулгыг засварлах болон өөр нэг танилцуулга хэлбэрээр өгөгдлийг хувиргах нь ашигтай байдаг.

VAR cRegExp = / ([A-Z] +) \ S ([A-Z] +) \ S ([A-Z] +) / би; хайлт хийхдээ // гурван "хувьсагч" байна

VAR STest = 'Энэ өгүүлэл сайн байна!';
VAR cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

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

dTestLine.innerHTML = 'илэрхийлэл' + cRegExp + "+ Stest +" эргэж: "мөр нь '+ cRegRes;

үр дүн:

илэрхийлэл / ([а-я] +) \ -ийн ([а-я] +) \ -ийн ([а-я] +) / би шугамын хувьд "Энэ нийтлэл сайн байна!" гарч: нийтлэл Энэ нь сайн байна!

хаалт хос дугаар ($ 1, $ 2, ...) - хаалтанд тус бүр хос хийж байх үед "хувьсагч" -д үр $ N, N хадгалдаг. ердийн ялгаатай нь, энэ хувьсах дугаар 1 биш, 0 байна.

Ерөнхий зөвлөмж

Энгийн илэрхийлэл кодыг хялбаршуулдаг боловч цаг хугацаа хөгжүүлэх энэ нь ихэвчлэн ялгаатай болгодог. Та энгийн загвар, дараа нь илүү төвөгтэй илэрхийлэлд руу нэгтгэх хийж эхэлж болно. Та тогтмол илэрхийлэл болон орон нутгийн тусгай багаж Туршилтын төрөл бүрийн онлайн үйлчилгээг ашиглаж болно.

хамгийн сайн сонголт тогтмол илэрхийлэл өөрсдийн номын сан, шинэ хөгжил шалгахын тулд өөрийн багаж үүсгэх болно. Энэ туршлага нэгтгэх, хэрхэн хурдан, найдвартай, ая тухтай загварыг бий болгох сурах хамгийн сайн арга юм.

, Тэмдэгтүүд болон чавхдаст, өөрөөр хэлбэл, тусгай баатрууд, гол дүрүүд '*', '+' болон хаалтан нь давтан хэрэглэх нь давталтуудыг тоо энгийн, expediency зарчмыг удирдлага байх ёстой харуулж байна. Энэ нь түүний ажилд эхнээс нь тогтмол илэрхийлэл гэдгийг ойлгох, мөн үр дүн хөтөч ашиглаж хөдөлгүүр хүч бүхэлд нь авах нь чухал юм. Мэдээж бүгд хэл JavaScript тэнцүү байна. хөтөч бүр өөрсдийн авчирч болохын хувийн тохиргоог тогтмол илэрхийлэл тайлбарлах болно.

Compatibility тогтмол илэрхийлэл нь, энэ нь бас юу байна, зүгээр л хуудас, загварын хуудас байна. хуудас ашигладаг JavaScript, сайн үйл ажиллагаа амжилттай хөтчүүд нь янз бүрийн ажиллаж байна л гэж үзэж болно.

JavaScript, мөр, RegExp

үйлчлүүлэгч түвшинд JavaScript-д зочны браузер байдаг нь зөв ажил, энэ нь хөгжүүлэгчид нь өндөр ур чадвар шаарддаг. хангалттай урт Та JavaScript-код хөтөч өөрийн хөрөнгө, эсвэл гуравдагч талын өргөтгөл, код засварлагчид, бие даасан хөтөлбөрийн тусламжтайгаар дибаг хийх боломж байна.

Гэсэн хэдий ч, бүх тохиолдолд биш, Debugger зохицуулах, хөгжүүлэгч, шуурхай алдаа илрүүлэх сайн дэмжлэг, саад илрүүлж өгч болно. удаа компьютерийн алс холын өнгөрсөн, тооцоо чиглэсэн үед байна. Одоо онцгой анхаарал мэдээлэл, шугам объект нь чухал үүрэг гүйцэтгэж ирсэн төлнө. Тэдний үнэн мөн чанар ган мөр тоо, тэд зөвхөн зөв цагт, зөв газарт илэрдэг.

Энгийн илэрхийлэл шугам боломжийг улам ч, өөрийгөө хүндэтгэх шаарддаг. Debug RegExp түүний ажилд, бас сонирхолтой биш санааг дүр нь энэ нь боломжтой байсан ч гэсэн.

, RegExp объектын бүтэц, логикийг ойлгох нь обьект мөр, синтакс болон JavaScript семантиксийг гэсэн утгатай - нь үнэн, аюулгүй, найдвартай кодыг хуудас бүрийн тогтвортой үйл ажиллагааг болон бүхэлд нь сайтад.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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