Hvordan telle strengforekomster i streng?

Hvordan kan jeg telle antall ganger en bestemt streng forekommer i en annen streng. Dette er for eksempel hva jeg prøver å gjøre i Javascript:

var temp = "This is a string.";
alert(temp.count("is")); //should output '2'
Løsning

gi det regulære uttrykket (forkortelse for *global*) sier at det skal søkes i hele strengen i stedet for bare å finne den første forekomsten. Dette samsvarer medis` to ganger:

var temp = "Dette er en streng.";
var count = (temp.match(/is/g) || []).length;
console.log(count);

Og hvis det ikke er noen treff, returneres 0:

var temp = "Hello World!";
var count = (temp.match(/is/g) || []).length;
console.log(count);
Kommentarer (17)
function countInstances(string, word) {
   return string.split(word).length - 1;
}
Kommentarer (10)

Du kan bruke match for å definere en slik funksjon:

String.prototype.count = function(search) {
    var m = this.match(new RegExp(search.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "g"));
    return m ? m.length:0;
}
Kommentarer (2)