157 votes

Javascript divise la chaîne de caractères sur les caractères majuscules

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')

335voto

Teneff Points 6753

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])/);

40voto

Max Points 399
.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"

13voto

Manuel van Rijn Points 7188

Vous êtes ici :)

var arr = UpperCaseArray("ThisIsTheStringToSplit");

function UpperCaseArray(input) {
    var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
    return result.split(",");
}

9voto

Aziz Points 159

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.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