605 votes

Comment est-ce que je divise une chaîne, en cassant à un caractère particulier?

J'ai cette chaîne

 'john smith~123 Street~Apt 4~New York~NY~12345'
 

En utilisant JavaScript, quel est le moyen le plus rapide d'analyser cela en

 var name = "john smith";
var street= "123 Street";
//etc...
 

952voto

Zach Points 9869

Avec un simple JavaScript:

 var split = 'john smith~123 Street~Apt 4~New York~NY~12345'.split('~');

var name = split[0];
var street = split[1];

etc...
 

54voto

Grant Wagner Points 14085

Vous n'avez pas besoin de jQuery.

 var s = 'john smith~123 Street~Apt 4~New York~NY~12345';
var fields = s.split(/~/);
var name = fields[0];
var street = fields[1];
 

18voto

Torsten Walter Points 3213

Même si ce n'est pas le moyen le plus simple, vous pouvez le faire:

 var addressString = "~john smith~123 Street~Apt 4~New York~NY~12345~",
    keys = "name address1 address2 city state zipcode".split(" "),
    address = {};

// clean up the string with the first replace
// "abuse" the second replace to map the keys to the matches
addressString.replace(/^~|~$/g).replace(/[^~]+/g, function(match){
    address[ keys.unshift() ] = match;
});

// address will contain the mapped result
address = {
    address1: "123 Street"
    address2: "Apt 4"
    city: "New York"
    name: "john smith"
    state: "NY"
    zipcode: "12345"
}
 

14voto

Runscope API Tools Points 43859

Vous voudrez regarder dans la sous - chaîne ou le split de JavaScript car ce n'est pas vraiment une tâche adaptée à jQuery

6voto

Dan Points 20968

bien, le moyen le plus simple serait quelque chose comme:

 var address = theEncodedString.split(/~/)
var name = address[0], street = address[1]
 

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