Come posso contare il numero di volte che una particolare stringa si verifica in un'altra stringa. Per esempio, questo è quello che sto cercando di fare in Javascript:
var temp = "This is a string.";
alert(temp.count("is")); //should output '2'
La g
nell'espressione regolare (abbreviazione di globale) dice di cercare l'intera stringa piuttosto che trovare solo la prima occorrenza. Questo corrisponde a is
due volte:
var temp = "Questa è una stringa.";
var count = (temp.match(/is/g) || []).length;
console.log(count);
E, se non ci sono corrispondenze, restituisce 0
:
var temp = "Ciao mondo!";
var count = (temp.match(/is/g) || []).length;
console.log(count);
Potete usare match
per definire tale funzione:
String.prototype.count = function(search) {
var m = this.match(new RegExp(search.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "g"));
return m ? m.length:0;
}