Come verificare se una stringa è una sottostringa di qualsiasi elemento in una matrice

Ho una matrice

var months = ["January", "February", "March", "April", \ "May", "June", "July", "August", "September", "October", \ "November", "December"]; 

Ho archi come “Nov”, “Ottobre”, “Giugno”, “Giugno”, “Settembre”, “Settembre” ecc. Il punto è che la stringa può essere una sottostringa di uno dei mesi.

Qual è il modo migliore per confrontare la stringa in una sottostringa degli elementi dell’array? Come posso trovare l’indice del mese?

Sto guardando javascript / jQuery.

So che posso solo scorrere l’array controllando contro ogni elemento utilizzando la search e interrompi quando trovato. Voglio qualcosa di meglio.

 var month_index = function(target) { target = target.toLocaleLowerCase(); return jQuery.inArray(true, jQuery.map(months, function(s) { return s.toLocaleLowerCase().indexOf(target) > -1; })) }; var index_of_october = month_index("oct"); 
 var substr = 'nov', months = ["december", "november", "feb"]; var index = months.indexOf( months.filter(function(v){ return v.indexOf(substr) >= 0;})[0]); alert(index) 

http://jsfiddle.net/KeMe9/

Metti gli elementi dell’array in minuscolo

 var txt = "Sep"; var found = false; txt = txt.toLowerCase(); for (var i = 0; i < 12; i++) { if (months[i].indexOf(txt) > -1) { found = true; break; } }