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.
Réponses
Trop de publicités?
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"]
TheTXI
Points
24470
- Réponses précédentes
- Plus de réponses