SORU
19 Mayıs 2009, Salı


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
19 Mayıs 2009, Salı


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

jsfiddle

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.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Photoshop Training Channel

    Photoshop Tr

    13 Temmuz 2012
  • stokelycalm

    stokelycalm

    28 Aralık 2010
  • Tomas N

    Tomas N

    14 Kasım 2010