SORU
7 HAZİRAN 2012, PERŞEMBE


normal ifade.test V. S. dize.eğer bir dize düzenli ifade maçları bilmek maçı

Birçok kez dize match Eğer bir dize düzenli ifade maçları bilmek fonksiyonu kullanıyorum.

if(str.match(/{regex}/))

Bu arasındaki fark:

if (/{regex}/.test(str))

Aynı sonucu verecek mi?

CEVAP
7 HAZİRAN 2012, PERŞEMBE


Temel Kullanım

İlk olarak, her bir fonksiyon bir bakalım:

regexObject.test(String)

Bir düzenli ifade ile belirtilen bir dize arasında bir eşleme yapabilir. Verirdoğruyayanlış.

string.match(RegExp)

Bu almak için kullanılan normal bir ifade karşı bir dize eşleşen zaman eşleşir. Eğer hiçbiri olmazsa olmaz " bir dizi maçlar verir veya null.

null false, değerlendirir beri

if ( string.match(regex) ) {
  // There was a match.
} else {
  // No match.
} 

Performans

Herhangi bir fark performansı var mı?

Evet. MDN site bu kısa not buldum:

Eğer bir dize düzenli ifade regexp maçlar bilmek istiyorsanız, regexp kullanın.test(dizi).

Farkı olur?

Cevap bir kez dahaEVET! Birleştirdim jsPerf bu kadar fark olduğunu gösterir~30% - ~60%tarayıcıya bağlı olarak:

test vs match | Performance Test

Sonuç

Eğer daha hızlı bir boolean kontrol etmek istiyorsanız .test kullanın. .match g genel bayrağını kullanırken maçları almak için kullanın.

Hatta tek bir blog bulmak değil hayran ya soruma cevap Yığın Taşması giriş için aramış< . em ^"düzenli ifade test vs javascript maç", share your knowledge, Q&A-style özelliği beni kullandı. Hoşuna umuyoruz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DanceOn

    DanceOn

    6 Mayıs 2006
  • LavcoPriceTech

    LavcoPriceTe

    21 AĞUSTOS 2010
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009