Ich habe an einem kleinen Projekt gearbeitet, das einen Sub-String-Zähler benötigt. Die Suche nach den falschen Phrasen brachte mir keine Ergebnisse, aber nachdem ich meine eigene Implementierung geschrieben hatte, bin ich über diese Frage gestolpert. Wie auch immer, hier ist mein Weg, es ist wahrscheinlich langsamer als die meisten hier, aber vielleicht hilfreich für jemanden sein:
function count_letters() {
var counter = 0;
for (var i = 0; i < input.length; i++) {
var index_of_sub = input.indexOf(input_letter, i);
if (index_of_sub > -1) {
counter++;
i = index_of_sub;
}
}
http://jsfiddle.net/5ZzHt/1/
Bitte lassen Sie mich wissen, wenn Sie finden, dass diese Implementierung nicht funktioniert oder einige Standards nicht einhält! :)
UPDATE Vielleicht möchten Sie sie ersetzen:
for (var i = 0; i < input.length; i++) {
Mit:
for (var i = 0, input_length = input.length; i < input_length; i++) {
Interessante Lektüre zu den oben genannten Themen: http://www.erichynds.com/blog/javascript-length-property-is-a-stored-value