Πώς να μετρήσετε την εμφάνιση συμβολοσειράς στη συμβολοσειρά;

Πώς μπορώ να μετρήσω τον αριθμό των φορών που μια συγκεκριμένη συμβολοσειρά εμφανίζεται σε μια άλλη συμβολοσειρά. Για παράδειγμα, αυτό προσπαθώ να κάνω σε Javascript:

var temp = "This is a string.";
alert(temp.count("is")); //should output '2'
Λύση

Το "g" στην κανονική έκφραση (συντομογραφία για global) λέει ότι πρέπει να αναζητηθεί ολόκληρη η συμβολοσειρά και όχι μόνο η πρώτη εμφάνιση. Αυτό ταιριάζει με το is δύο φορές:

-- begin snippet: js hide: false console: true babel: false --&gt,

Σχόλια (17)
function countInstances(string, word) {
   return string.split(word).length - 1;
}
Σχόλια (10)

Μπορείτε να χρησιμοποιήσετε την match για να ορίσετε μια τέτοια συνάρτηση:

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