773 votes

Comment diviser une chaîne avec plusieurs séparateurs en javascript ?

Comment diviser une chaîne avec plusieurs séparateurs en JavaScript ? J'essaie de diviser sur les virgules et les espaces mais, à ma connaissance, la fonction de division de JavaScript ne prend en charge qu'un seul séparateur.

2voto

Orhun Alp Oral Points 311

N'utilisez pas RegExp car il n'est pas très performant pour un travail aussi basique. Vous pouvez utiliser la fonction suivante à la place :

var multiSplit = function(str,delimeters){
    var result = [str];
    if (typeof(delimeters) == 'string')
        delimeters = [delimeters];
    while(delimeters.length>0){
        for(var i = 0;i<result.length;i++){
            var tempSplit = result[i].split(delimeters[0]);
            result = result.slice(0,i).concat(tempSplit).concat(result.slice(i+1));
        }
        delimeters.shift();
    }
    return result;
}

multiSplit('1,2,3.4.5.6 7 8 9',[',','.',' ']);
// Output: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]

multiSplit('1,2,3.4.5.6 7 8 9',' ');
// Output: ["1,2,3.4.5.6", "7", "8", "9"]

1voto

TheTXI Points 24470

Peut-être devriez-vous faire une sorte de remplacement de chaîne pour transformer un séparateur en l'autre séparateur afin de n'avoir qu'un seul séparateur à gérer dans votre fractionnement.

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