Belirli bir dizenin başka bir dizede kaç kez geçtiğini nasıl sayabilirim? Örneğin, Javascript'te yapmaya çalıştığım şey bu:
var temp = "This is a string.";
alert(temp.count("is")); //should output '2'
Düzenli ifadedeki g
(global'in kısaltması), yalnızca ilk oluşumu bulmak yerine tüm dizeyi aramayı söyler. Bu is
ile iki kez eşleşir:
var temp = "Bu bir string.";
var count = (temp.match(/is/g) || []).length;
console.log(count);
Ve eğer eşleşme yoksa 0
döndürür:
var temp = "Merhaba Dünya!";
var count = (temp.match(/is/g) || []).length;
console.log(count);
Böyle bir fonksiyonu tanımlamak için match
kullanabilirsiniz:
String.prototype.count = function(search) {
var m = this.match(new RegExp(search.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "g"));
return m ? m.length:0;
}