331 votes

Comment saisir la sous-chaîne avant un caractère spécifié jQuery ou JavaScript

J'essaie d'extraire tout ce qui se trouve avant la virgule ",". Comment puis-je faire cela en JavaScript ou en jQuery ? J'ai essayé ceci et ça ne marche pas..

1345 albany street, Bellevue WA 42344

Je veux juste récupérer l'adresse de la rue.

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

48 votes

addy.split(',', 1)[0]

511voto

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

Bien que ce ne soit pas le meilleur endroit pour obtenir des informations définitives sur ce que fait chaque méthode ( réseau de développeurs mozilla est meilleur pour cela) w3schools.com est bon pour vous initier à la syntaxe.

33 votes

Cela ne fonctionnera pas si la chaîne recherchée ne contient pas une instance du caractère de recherche. Elle renverra une chaîne vide.

7 votes

substr n'est pas recommandé ; il faut utiliser substring au lieu de developer.mozilla.org/fr/US/docs/Web/JavaScript/Référence/

40voto

Mikey G Points 1860

Essayez ceci :

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

1 votes

Pourquoi ma réponse n'est-elle pas appréciée ? Si cette réponse est correcte stackoverflow.com/questions/3745515/ ma réponse est aussi précise que la réponse acceptée, et fonctionne pour les indices de départ autres que 0.

11 votes

Comme l'a souligné David G ci-dessus, peut-être parce que cela ne fonctionne pas s'il n'y a pas de virgule. Le PO a peut-être laissé entendre que la chaîne de caractères aurait toujours une virgule, mais dans de nombreux cas, le délimiteur n'est pas garanti. Voir jsfiddle.net/13pkp1xn

19voto

flu Points 3120

Si vous l'aimez court, utilisez simplement un RegExp :

var streetAddress = /[^,]*/.exec(addy)[0];

4 votes

+1, je pense que c'est une méthode raisonnable, mais je me suis inspiré de cette méthode et j'ai opté pour addy.split(',', 1)[0]

3 votes

Cette méthode est très agréable, par exemple si vous voulez diviser sur un espace blanc : /[^ \s ]*/.exec(...)

8voto

max.weller Points 987
var streetaddress = addy.substr(0, addy.indexOf('.')); 

(Vous devriez lire un tutoriel javascript surtout la partie concernant Fonctions des chaînes )

8voto

Gaurav Points 14339
var newString = string.substr(0,string.indexOf(','));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X