How do you split a string into an array in JavaScript by Uppercase character?
So I wish to split:
'ThisIsTheStringToSplit'
into
['This', 'Is', 'The', 'String', 'To', 'Split']
How do you split a string into an array in JavaScript by Uppercase character?
So I wish to split:
'ThisIsTheStringToSplit'
into
['This', 'Is', 'The', 'String', 'To', 'Split']
I would do this with .match()
like this:
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);
it will make an array like this:
['This', 'Is', 'The', 'String', 'To', 'Split']
edit: since the string.split()
method also supports regex it can be achieved like this
'ThisIsTheStringToSplit'.split(/(?=[A-Z])/); // positive lookahead to keep the capital letters
that will also solve the problem from the comment:
"thisIsATrickyOne".split(/(?=[A-Z])/);
.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
This should handle the numbers as well.. the join at the end results in concatenating all the array items to a sentence if that's what you looking for
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
Output
"This Is The String To Split"
Here you are :)
var arr = UpperCaseArray("ThisIsTheStringToSplit");
function UpperCaseArray(input) {
var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
return result.split(",");
}
This is my solution which is fast, cross-platform, not encoding dependent, and can be written in any language easily without dependencies.
var s1 = "ThisЭтотΨόυτÜimunəՕրինակPří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(' ');
Here's an answer that handles numbers, fully lowercase parts, and multiple uppercase letters after eachother as well:
const wordRegex = /[A-Z]?[a-z]+|[0-9]+|[A-Z]+(?![a-z])/g;
const string = 'thisIsTHEString1234toSplit';
const result = string.match(wordRegex);
console.log(result)
This piece of code will return the following output
const str = 'ThisIsTheStringToSplit';
str.split(/(?=[A-Z])/);
// It will print this output
['This', 'Is', 'The', 'String', 'To', 'Split']
I'm a newbie in programming and this was my way to solve it, using just basics of JavaScript declaring variables as clean for someone reading as possible, please don't kill me if it is not optimized at all, just starting with coding hehe :)
function solution(string) {
let newStr = '';
for( i = 0; i < string.length ; i++ ) {
const strOriginal = string[i];
const strUpperCase = string[i].toUpperCase();
if( strOriginal === strUpperCase) {
newStr = newStr + ' ' + strOriginal;
} else {
newStr = newStr + strOriginal;
}
}
return console.log(newStr);
}
solution('camelCasing');
string DemoStirng = "ThisIsTheStringToSplit";
for (int i = 0; i < DemoStirng.Length; i++) {
if (i != 0)
{
if ((int)DemoStirng[i] <= 90 && (int)DemoStirng[i] >= 65)
{
var aStringBuilder = new StringBuilder(DemoStirng);
aStringBuilder.Insert(i, ",");
DemoStirng = aStringBuilder.ToString();
i++;
}
}
}
string[] words = DemoStirng.Split(',');