Comment diviser une chaîne de caractères en un tableau en Javascript en fonction du caractère majuscule ?
Je souhaite donc me séparer :
'ThisIsTheStringToSplit'
en
('This', 'Is', 'The', 'String', 'To', 'Split')
Comment diviser une chaîne de caractères en un tableau en Javascript en fonction du caractère majuscule ?
Je souhaite donc me séparer :
'ThisIsTheStringToSplit'
en
('This', 'Is', 'The', 'String', 'To', 'Split')
Je le ferais avec .match()
comme ça :
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);
cela donnera un tableau comme celui-ci :
['This', 'Is', 'The', 'String', 'To', 'Split']
éditer : depuis le string.split()
supporte également les expressions rationnelles (regex) et peut être réalisée comme suit
'ThisIsTheStringToSplit'.split(/(?=[A-Z])/); // positive lookahead to keep the capital letters
qui résoudra également le problème du commentaire :
"thisIsATrickyOne".split(/(?=[A-Z])/);
.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
Cela devrait permettre de gérer les chiffres également. La jointure à la fin permet de concaténer tous les éléments du tableau en une phrase, si c'est ce que vous recherchez.
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
Sortie
"This Is The String To Split"
Voici ma solution, qui est rapide, multiplateforme, ne dépend pas de l'encodage, et peut être écrite dans n'importe quel langage facilement sans dépendances.
var s1 = "ThisÜimunPíkladÉlda";
s2 = s1.toLowerCase();
result="";
for(i=0; i<s1.length; i++)
{
if(s1[i]!==s2[i]) result = result +' ' +s1[i];
else result = result + s2[i];
}
result.split(' ');
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.