Javascript string içinde bir karakterin oluşum sayısını
String içinde bir karakterin yineleme sayısını saymak istiyorum.
Örneğin, benim dize içerdiğini varsayalım:
var mainStr = "str1,str2,str3,str4";
3 ,
virgül karakter sayısını bulmak istiyorum. Ve ayrıldıktan sonra tek tek dizeleri sayısını boyunca virgül, 4.
Ben de dizeleri ben her doğrulamak gerekir.e str1 str2 str3 str4 ya ya ya,, 15 aşan söylememeli karakter.
Biri bana bu konuda yardım edebilir misiniz?
CEVAP
Bu cevap güncelledik. Daha iyi bir eşleşme kullanarak fikir gibi, ama daha yavaş
console.log(("str1,str2,str3,str4".match(/,/g) || []).length); //logs 3
console.log(("str1,str2,str3,str4".match(new RegExp("str", "g")) || []).length); //logs 4
Değişmez Eğer önceden aradığınız ne, yoksa RegExp
yapıcı kullanmak, ve bir argüman olarak g
bayrak iletebilirsiniz, düzenli bir ifade kullanmak.
match
sonuçlar null
böylece || []
döndürür
2009 yılında yapılmış orijinal cevap aşağıda. Bir dizi gereksiz yere, ama oluşturursplit kullanarak daha hızlıdır(Eylül 2014 itibariyle). Kararsızım Eğer gerçekten bir bölünme kullanırdım bu soruyu olacağına dair hızı gerekirse, ama maçı kullanmayı tercih ediyorum.
(2009) eski cevap:
Eğer virgül arıyorsanız:
(mainStr.split(",").length - 1) //3
Str arıyorsanız
(mainStr.split("str").length - 1) //4
jsperf test benim kendi aptal bölünmüş @Lo cevabı ve hem de tam yol ileri, en azından Chrome geliyor, ama yine ekstra bir dizi oluşturmak sadece mantıklı görünmüyor.
JavaScript PHP gibi birleştirme olmada...
JavaScript içinde bir dizi belirli bir...
JavaScript, basit bir beşgen kullanmak...
JavaScript string Trim?...
JavaScript içinde geçerli URL almak?...