Como posso contar o número de vezes que uma determinada cadeia ocorre em outra cadeia. Por exemplo, isto é o que estou a tentar fazer em Javascript:
var temp = "This is a string.";
alert(temp.count("is")); //should output '2'
O g
na expressão regular (abreviação de global) diz para procurar a corda inteira ao invés de apenas encontrar a primeira ocorrência. Isto corresponde ao é
duas vezes:
var temp = " Isto é um string.";
var count = (temp.match(/is/g) || []).length;
console.log(count);
E, se não houver fósforos, ele retorna 0
:
var temp = "Olá Mundo!";
var count = (temp.match(/is/g) || []).length;
console.log(count);
Você pode utilizar match
para definir tal função:
String.prototype.count = function(search) {
var m = this.match(new RegExp(search.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "g"));
return m ? m.length:0;
}