Come afferrare la sottostring prima di un carattere specificato jQuery o JavaScript

Sto cercando di estrarre tutto prima della ',' virgola. Come posso fare questo in JavaScript o jQuery? Ho provato questo e non ho lavorato ..

1345 albany street, Bellevue WA 42344 

Voglio solo afferrare l'indirizzo di strada.

 var streetaddress= substr(addy, 0, index(addy, '.')); 

 var streetaddress= addy.substr(0, addy.indexOf(',')); 

Mentre non è il posto migliore per informazioni definitive su ciò che each metodo fa (la networking di sviluppatori mozilla è meglio per questo) w3schools.com è utile per introdurre la syntax.

 var streetaddress = addy.split(',')[0]; 

prova questo:

 streetaddress.substring(0, streetaddress.indexOf(',')); 

Se ti piace breve utilizzare semplicemente un RegExp :

 var streetAddress = /[^,]*/.exec(addy)[0]; 
 //split string into an arrays and grab the first item var streetaddress = addy.split(',')[0]; 

Inoltre, suggerisco di nominare le tue variables con il cammello (streetAddress) per una migliore leggibilità.

 var streetaddress = addy.substr(0, addy.indexOf('.')); 

(Dovresti leggere un tutorial di javascript , in particolare la parte relativa alle funzioni String )

quasi la stessa cosa della risposta di David G, ma senza la function anonima, se non ti sembra di includere uno.

 s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(',')); 

in questo caso si utilizza il fatto che il secondo argomento di substr è una lunghezza e che sappiamo che la nostra sottostring inizia a 0.

la risposta principale non è una soluzione generica a causa del comportmento indesiderato se la string non contiene il carattere che stai cercando.

se si desidera un comportmento corretto in un caso generico, utilizzare questo metodo o il metodo di David G, non la risposta superiore

funzionano anche methods di regex e split, ma possono essere un po 'più lenti / overkill per questo problema specifico.

Se si desidera restituire la string originale non trattata se non contiene il carattere di ricerca, è ansible utilizzare una function anonima (una chiusura):

 var streetaddress=(function(s){var i=s.indexOf(','); return i==-1 ? s : s.substr(0,i);})(addy); 

Ciò può essere reso più generico:

 var streetaddress=(function(s,c){var i=s.indexOf(c); return i==-1 ? s : s.substr(0,i);})(addy,','); 
 var newString = string.substr(0,string.indexOf(','));