Ich glaube, Sie werden feststellen, dass die folgende Lösung sehr kurz und schnell ist, mit sehr langen Zeichenfolgen arbeiten kann, die Suche nach mehreren Zeichen unterstützt, fehlerfrei ist und leere Zeichenfolgen verarbeiten kann.
function substring_count(source_str, search_str, index) {
source_str += "", search_str += "";
var count = -1, index_inc = Math.max(search_str.length, 1);
index = (+index || 0) - index_inc;
do {
++count;
index = source_str.indexOf(search_str, index + index_inc);
} while (~index);
return count;
}
Beispiel für die Verwendung:
console.log(substring_count("Lorem ipsum dolar un sit amet.", "m "))
function substring_count(source_str, search_str, index) {
source_str += "", search_str += "";
var count = -1, index_inc = Math.max(search_str.length, 1);
index = (+index || 0) - index_inc;
do {
++count;
index = source_str.indexOf(search_str, index + index_inc);
} while (~index);
return count;
}
Der obige Code behebt den großen Performance-Fehler in Jakub Wawszczyk's Code, dass der Code weiterhin nach einer Übereinstimmung sucht, auch wenn indexOf sagt, dass es keine gibt, und seine Version selbst funktioniert nicht, weil er vergessen hat, die Eingabeparameter der Funktion anzugeben.