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
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:
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.
Eğer düzenli ifade dize http:// veya h...
Eğer bir dize geçerli bir adres olup o...
Nasıl bir dize düzenli ifade kullanara...
Düzenli ifade deseni her yerde dize eş...
Bir dize düzenli ifade eşleşip eşleşme...