BilgisayarlarProgramlama

JavaScript, düzenli ifade örnekleri Düzenli İfade kontrol

biz sadece bakmak gerekir, ancak belirli koşullar altında bunu yapmak için, belirli bir yerde, değiştirilen verilerin altındaki sağ miktarlarda, her zamanki arama ve değiştirme ortaya çıktı dek köprü dili gelişiyle, ama önce daha ziyade, fonksiyon herhangi sofistike organize programcısı. programlama dillerinde sanat arama başyapıtları oluşturun ve veritabanı örnekleme koşullarının formları çok başarılı, saklı prosedürler, tetikleyiciler ve hantal örnek ilişkisel bilgi Rayların diğer araçlarla donatılmış. devrime Normal ifadenin görünüşü yol açmadı, ancak bilgiyi bulmak ve değiştirmek için kullanışlı ve rahat bir yol oldu. Örneğin, e-posta anlamlı ziyaretçilerin kaydını basitleştirmek JavaScript düzenli ifadeler, olmayan adreslere ileti gönderme web sitesini yüklemeyin.

bir JavaScript düzenli ifade () indexOf daha iyi produmannnyh sekansları alışılmış siklik ve operatörlerin çerçeve içinde aramaları söylemek, ancak komut kodu kompakt, fakat uninitiated anlaşılır biraz yapmıştır demek değildir, net bir şekilde olabilir.

Nesne RegExp = + şablon motoru

Düzenli ifadeler - Bir şablon + motorudur. çizgi uygulamak, bu şablon icracı - JavaScript nesne - - RegExp, ikinci birinci normal bir ifade aslında. Her programlama dili için normal ifadeleri uygulamak Motorları farklıdır. tüm farklar anlamlı olmasına rağmen Ve bu akılda, hem de özenle faaliyete geçmeden önce, normal ifadeyi kontrol etmeyi unutmayın edilmelidir.

Normal ifadeler yazarken özel bir gösterim kullanımı oldukça kolay ve oldukça etkili olduğunu, ancak geliştiriciden bakım, zariflik ve sabır gerektirir. gösterimde tarafından düzenli ifade desenleri alışması gerekiyor. Bu «JavaScript düzenli ifadeler uygulanması için bir mekanizmanın mantıktır, bir heves değildir."

Düzenli ifade desen

İki seçenek İzin:

var EXPone = / abc * / i;

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

Tipik olarak ilk yöntemi kullanılır. İkinci durumda, tırnak, çünkü karakterini kullanmak '\', genel kurallarla öncelenmelidir.

'I' - bayrak "duyarsız durumda" belirten. «Küresel Arama' ve 'm' - - Bir çok satırlı arama Ayrıca Bayraklar g' kullanabilirsiniz.

sembolü '/' bir şablon kullanmak için ortak belirtmek için.

başlangıç ve normal ifadenin uç

'^' Ucunda olması gereken karakter (ler) belirleyen karakter (ler) olan bir normal ifade başlatmak ve '$' tanımlar. Onların farklı bir anlam ifadesi, içeride onlarla deneme olmamalıdır.

Örneğin,

var eRegExp = new RegExp (cRegExp 'i);

var cRegRes = '';

var stest = 'AbcZ';

Eğer (eRegExp.test (stest)) {

cRegRes + = '- Evet';

} Başka {

cRegRes + = '- Resim';

}

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

dTestLine.innerHTML = Expression / '+ cRegExp + '/ satır için "' + stest + ''" + cRegRes.

elemanın scTestLine 'sonuçlanacaktır (cRegExp değişken karşılık gelen bir anlama sahiptir):

ifadesi / ^ AbcZ $ / dizesi "abcz" için - Evet

Eğer 'i' bayrağını kaldırmak, sonuç ise:

ifadesi / ^ AbcZ $ / dizesi "abcz" için - Hayır

Normal ifadenin içeriği

Normal bir ifade arama konu olan bir karakter dizisi vardır. İfade / qwerty / girişi arayan bu dizisidir:

ifadesi / qwerty / "qwerty" dizesi için - Evet

ifadesi / qwerty / "123qwerty456" dizesi için - Evet

'^' Değişiklikler ifadelerdir:

ifadesi / ^ qwerty / "123qwerty456" dizesi için - Hayır

ifadesi / ^ qwerty / "qwerty456" dizesi için - Evet

Benzer şekilde, hat sembolü sonu için. Düzenli ifadeler tutarlılık için izin: örneğin, [az], [AZ], [0-9] - bu durumda ya rakamlar alfabenin tüm harfleri. Rus harfler de kullanılabilir, ancak (aranan aranır) dizeleri kodlama ve sayfalara dikkat etmeliyiz. Genellikle Rus harfleri, hem de özel karakterler, kodları tespit edilmesi tercih edilir.

bunların sayısı aşağıdaki gibi verilen bir normal ifade, belirli bir konumda belirli sembollerin varlığı için seçenekleri belirtebilir oluşturulurken: '*' = 0 tekrar ya da daha fazla kez; '+' = 1 ya da daha çok tekrar defa; {1} '+' olarak aynıdır; {N-} = tekrar tam olarak n kez; {N,} = n tekrarlama kat ya da daha fazla; m kez n {N-, m} = tekrarı.

parantez kullanarak, seçenekler karakter kümesini belirtebilirsiniz. Bu şuna benzer. [ABCD] = [ad] = Her dört sembol: 'a', 'b', c '' veya 'd'. Aksi takdirde belirtebilirsiniz. grubu belirtilenlerin dışındaki herhangi bir karakter: [^ ABCD] 'a' dışında herhangi bir karakter, 'b', c '' veya 'd' =. '?' Bu noktada sembol olamayacağını gösterir. '' yeni satır belirten dışındaki herhangi bir karakter belirtir. Bu '\ N', '\ R', '\ u2028' veya '\ u2029'. ifadesi '\ s * | \ S *' | satırbaşıyla dahil herhangi karakteri, arayışını demektir = '* [\ S \ s]'.

Normal ifadenin basitleştirilmiş versiyonları

Arama alanı, ya da bunların eksikliği, hepsi bu hat üzerinde olduğu - | sentezleme '* [\ S \ s]. Onun yokluğu - Bu durumda, sembol '\ s' bir boşluk ve '\ S' gösterir.

Benzer şekilde, ondalık basamak aramak için '\ d' kullanabilir ve '\ D' sayısal olmayan bir karakteri bulmak. Gösterim '\ F', 'R' ve '\ n' bir şekilde besleme, satır başı ve hat beslemesine karşılık gelir.

sekme karakteri - '\' t, dikey - '\ v'. belirleme '\ w' bir Latince harf karakter (harf, rakam ve alt çizgi) = [A-Za-z0-9_] bulur.

W \ 'tanımı [^ A-Za-z0-9_] eşdeğerdir. Bu alfabe, sayı veya '_' mektubu olmayan herhangi bir karakter anlamına gelir.

Arama karakteri '\ 0' = arama NUL karakter. Arama '\ xhh' veya '\ Uhhhh' = Arama karakter kodu veya HHHH HH sırasıyla. H - onaltılı basamak.

Önerilen ifadeler ve normal ifadenin kodlama

Herhangi düzenli ifade dikkatle sıralar farklı sürümleri üzerinde test etmek önemlidir.

küçük olacak normal bir ifade hatası yaratma deneyimi ile, ama yine de her zaman yazma normal ifade kurallarına kendi bilgi "normal sezon" Başka bir dilden aktarılır, özellikle doğru olamaz akılda tutulmalıdır.

klasik (tam göstergesi) ve düzenli bir ifadenin basitleştirilmiş sürümü arasında seçme, ilk tercih daha iyidir. Sonuçta, klasikleri içinde her zaman açıkça hem aranan belirtiliyor. Düzenli ifade veya arama dizesi Rus harfleri varsa, tek bir kodlama tüm hatları ve normal bir ifade gerçekleştirir JavaScript kodunu bulmak üzerinde çalıştığı sayfaya gitmelidir.

Bir karakter işleme olmayan Latin alfabesi olduğunda, bu karakter kodları değil, karakterlerin kendileri bir göstergesini dikkate almak mantıklı.

JavaScript düzenli ifade arama algoritmaları uygularken dikkatli kontrol edilmelidir. Karakter kodlamasını denetlemek için özellikle önemlidir.

Normal ifadedeki parantezler

sekans varyantları - parantez olmalı ya da belli bir yerde olabilir sembolü, ve yuvarlak seçenekleri tanımlar. Ancak bu sadece genel bir kuraldır. ondan istisna yoktur, ama geniş bir uygulama çeşitliliği mevcuttur.

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

var eRegExp = new RegExp (cRegExp 'i);

var cRegRes = '';

var stest = 'resim.jpg';

Eğer (eRegExp.test (stest)) {

cRegRes + = '- Evet';

} Başka {

cRegRes + = '- Resim';

}

sonuçlar:

çizgi "Picture.jpg" için /[az]*.(png|jpg|gif)/ ifadesi - Evet

"Resim.jpg" hattı için /^[ad][az]*.(png|jpg|gif)/ anlatım - Hayır

çizgi "apicture.jpg" için /^[ad][az]*.(png|jpg|gif)/ ifadesi - Evet

"Apicture.jg" hattı için /^[ad][az]*.(png|jpg|gif)/ anlatım - Hayır

Hepsi daha sonra bir yıldız işareti sıfır kere mevcut olabilir unutulmamalıdır. Bu "normal sezon" en azından beklenmedik şekillerde işe yarayabilecek anlamına gelir.

RegExp kontrol edin - test e

yerine ve eşleme, ara bölme: iki yöntem, test ve EXEC elde edilir ve çizgiler yöntemlerinde nesneleri (string) (fonksiyonları) içinde kullanılabilecek normal bir JavaScript ifade de.

test yöntemi zaten düzenli ifadenin doğruluğunu kontrol etmenizi sağlar, gösterilmiştir. Yöntem Sonuç: false / true.

aşağıdaki JavaScript düzenli ifadeler düşünün. "Kesinlikle zor ama" sayısından postanızı kontrol edin:

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

bir dize var stest ='SlavaChip@sci.by 'o zaman bu dize doğru e-posta adresi var olduğunu, gerçek verir. Denetim eRegExp.test (stest) tarafından gerçekleştirilmiştir.

Pratik kullanım: E-posta tedavisi

Exec yöntemi, çıkış dizi sağlar, çağırır:

var neticesi = eRegExp.exec (stest);

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

Bu aşağıdaki sonucu verir:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
tanımlanmamış
sci.by
tanımlanmamış
sci.by
sci.

Diğer yöntemler benzer şekilde çalışır. Kendini onları kontrol önerilir. Gelişim ve düzenli ifadeler kullanılması, pratikte işe arzu edilir, kod kopyalama burada her zaman tavsiye edilmez.

Popüler "normal sezon"

JavaScript düzenli ifade çok daha fazla kolay seçenek vardır sadece E-postaya verilmiş. Örneğin, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Bununla birlikte bu düzenlemenin dikkate e-posta adresi kaydının değil bütün düzenlemeleri alır.

Tabii ki, JavaScript düzenli ifadeler kendi tasarımı önce önerdiği nasıl analiz etmek, meslektaşlarının deneyimi görmek gerekir. Ancak bazı zorluklar vardır. '/', '\' Ya tırnak: Biz bir JavaScript düzenli ifadeler (kopyalarken örnekleri) temel karakterleri çoğaltabilirsiniz unutmamalıyız. Bu uzun arama yapabilirsiniz hatası yol açacaktır.

Hesaba zamanki almak önemlidir "insani boyutu." ziyaretçi (kişi) olabilir telefon için resmi JavaScript düzenli ifade sonra, farklı şekillerde verilmektedir: 123-45-67, (29) 1234567, 80291234567 veya 375291234567. Ve hepsi aynı numara. çok sayıda kalıbı Yazım her zaman kabul edilebilir değildir ve bir rahatsızlık ya da kısıtlamalar oluşturabilir sayıda yazma için kurallar katı sabitleme. Seçenek / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i kendi telefon numarasını kontrol çoğu durum için uygundur.

Eğer bir JavaScript düzenli ifadeler, sadece rakam kontrolleri yapmak istiyorsanız, hatta böyle basit bir olay açıklığa kavuşturulması gereklidir. Bu bir tamsayı veya fraksiyonel, bilimsel gösterim veya normal pozitif veya negatif sayı düşünülmelidir. Ayrıca hesaba para birimi simgesine varlığını, noktadan sonraki basamak sayısını ve üçlü üzerindeki sayının tamamı kısmının bölünmesini alabilir.

Anlatım / ^ \ d + $ / i sadece numaralarını kontrol ve /^\d+\.\d+$/i ifade sayının kesirli kısmını belirtmek için bir nokta kullanımına izin verir.

JavaScript normal ifadeler kontrol profillerini, pasaport verilerini ve yasal adresleri t girerken özellikle önemlidir sert girdi verilerinin formatını belirtmek için kullanılabilir. D.

Kontrol tarihleri - basitten karmaşığa

Başka bir JavaScript düzenli ifadeler düşünün. telefon numaralarının sayısı için, o tarihe kadar örnekleri katılık ve esneklik arasında seçim temsil eder. Etkinliğin tarihi - genellikle uygulanacak olan temel veriler, biri. Ama belirli bir biçimde girdi sabitleme: "gg-aa-yyyy 'veya' d.m.gg 'sık sık müşteri memnuniyetsizliği yol açar. Yalnızca bir rakam girdiğinizde günden ayın Giriş alanından geçiş, klasik HTML formunun tam, yer alamaz ve ikinci girdi zor olabilir. Örneğin, günün alanında bu 3 tanıtıldı ve sonraki 2 numaralı ilk yerine geçmez, ve tabii ki, rahatsızlığa neden olacak, onun 32, atfedilir.

Verimlilik ve normal ifade kolaylık esasen ziyaretçi ile diyalog genel inşaat bağlıdır. Bir olayda, tarih belirtmek için diğer durumda, gün, ay ve yıl için çeşitli alanlarda sağlamak için gerekli olan formun tek bir giriş alanını kullanılması tavsiye edilir. Ama sonra herhangi bir ek "kod maliyetler", artık yıl ay sayısını, içlerinde gün sayısını kontrol etmek.

, Düzenli ifade bellek arama ve değiştirme

JavaScript Nesnenin yöntemini kullanarak (düzenli ifadeler) değiştirin ve bize değer bulmak ve Hemen değiştirmek için izin verir. Bu form alanlarının içeriğini düzenlemek, yazım hatalarını düzeltmek için ve başka bir sunum biçiminden veri dönüştürmek için yararlıdır.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; ararken // üç 'değişkenleri' vardır

var stest = 'Bu yazı iyidir!';
var cRegRes = sTest.replace (cRegExp, "$ 2, 3 $, 1");

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

dTestLine.innerHTML = 'ifadesi' + cRegExp + ' "+ stest + '" çevirmek:' dizesi için' + cRegRes;

sonuç:

sentezleme / ([az] +) \ s ([az] +) \ s ([az] +) / i hat için "bu yazı iyi!" Çıkış: makale bu, iyidir!

braket çifti sayısı ($ 1, $ 2, ...) - parantez her çift gerçekleştirirken 'değişken' sonucu $ n, n depolar. Geleneksel aksine, burada değişken numarası 1 değil, 0 'dır.

Genel öneriler

Düzenli ifade kodunu kolaylaştırır, ancak zaman genellikle bir fark yaratıyor geliştirmektir. Sen daha karmaşık ifadelerine birleştirmek için yapılan daha sonra basit tasarımlar ve başlayabilir. Normal ifadeler veya özel yerel araçlarını test etmek için çeşitli çevrimiçi hizmetlerini kullanabilirsiniz.

En iyi seçenek Düzenli ifadelerin kendi kütüphane ve yeni gelişmeleri sınamak için kendi araçlarını oluşturur. Bu deneyimi pekiştirmek ve hızlı bir şekilde güvenilir ve rahat bir tasarıma nasıl oluşturulacağını öğrenmek için en iyi yoldur.

tekrarlama sayısı basitlik ve çıkarlar ilkelerine göre yönlendirilmelidir belirten karakterler ve dizeleri, yani özel karakterlerin * ', '+' ve parantez tekrarını kullanma. Onun çalışmalarının başlangıcına bir düzenli ifade olduğunu fark etmek ve sonuç tarayıcı tarafından kullanılan motorun gücü tamamen almak önemlidir. Tüm diller JavaScript eşdeğerdir. Her tarayıcı kendi getirebilir kişisel tercihleri düzenli ifadeler yorumlanmasında.

Uyumluluk düzenli ifadeler için, aynı zamanda yapmak zorunda değil, sadece sayfaları ve stil sayfaları olduğunu. sayfa JavaScript bir başarıyla tarayıcıların çeşitli çalıştı sadece iyi işleyen kabul edilebilir kullanır.

JavaScript, Dize ve RegExp

JavaScript ziyaretçinin tarayıcısında olduğu istemci düzeyinde doğru iş olarak, bu geliştirici yüksek beceri gerektirir. Yeterince uzun JavaScript kodu tarayıcı kendi fonları veya üçüncü taraf uzantıları, kod editörleri, bağımsız programlar yardımı ile hata ayıklama fırsat var.

Ancak, tüm durumlarda, ayıklayıcı, tutamak ve darboğazları tespit geliştirici, hızlı bir hata tespiti için iyi destek sağlayabilir. Zaman bilgisayar uzak geçmişte, hesaplamalar üzerinde yoğunlaştı zaman. bilgi ve çizgi nesneler önemli bir rol oynamaya gelmiş Şimdi, özellikle dikkat edin. çelik dizeleri sayısı ve bunların gerçek doğası onlar sadece doğru zamanda ve doğru yerde ortaya.

Düzenli ifadeler hatlarının olasılığını güçlendirmek, ancak kendine saygı gerektirir. Hata Ayıklama RegExp eserinde, bu mümkün olsa bile, çok ilginç değil fikir simüle etmek.

Gerçek bir güvenli kod, her sayfanın istikrarlı çalışmasını ve bir bütün olarak siteyi - nesne String, sözdizimi ve JavaScript semantiğini anlamına RegExp nesnesinin yapısını ve mantığını anlama.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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