lo split usato per questo problema è un "trick" puramente scripting ... per avere qualcosa di più pulito e didattico potresti usare questa
codice:
function stringa(a, b){
var i = -1, // Int32
tot = 0; // UInt32
while(
// assegnazione inline, possibile anche con il C
(i = a.indexOf(b, i + 1))
!== -1) // occorrenza non trovata
tot++; // incremento
// risultato
return tot;
};
riprodotta identica in versione ciclo for in questo modo
codice:
function stringa(a, b){
for(var i = -1, tot = 0; (i = a.indexOf(b, i + 1)) !== -1; tot++);
return tot;
};
entrambe si basano sul metodo dell'oggetto stringa indexOf, che non so se l'hai ancora fatto ma è il metodo ufficiale per trovare proprio occorrenze di una stringa all'interno di un'altra.
Io mi promuoverei da solo