I am trying to create a function that inserts spaces between the characters of a string argument then return a new string which contains the same characters as the argument,
function insertSpaces(aString)
{
return aString.split('').join(' ');
}
Alternative for a split and join solution could be:
'Hello'.replace(/(.(?!$))/g,'$1 '); //=> H e l l o
// ^all characters but the last
// ^replace with found character + space
Or in a function:
function insertChr(str,chr) {
chr = chr || ' '; //=> default is space
return str.replace(/(.(?!$))/g,'$1'+chr);
}
//usage
insertChr('Hello'); //=> H e l l o
insertChr('Hello','-'); //=> H-e-l-l-o
or as a String prototype function:
String prototype.insertChr(chr){
chr = chr || ' '; //=> default is space
return this.replace(/(.(?!$))/g,'$1'+chr);
}
//usage
'Hello'.insertChr(); //=> H e l l o
'Hello'.insertChr('='); //=> H=e=l=l=o
You can use the split() function to turn the string into an array of single characters, and then the join() function to turn that back into a string where you specify a joining character (specifying space as the joining character):
function insertSpaces(aString) {
return aString.split("").join(" ");
}
(Note that the parameter to split()
is the character you want to split on so, e.g., you can use split(",")
to break up a comma-separated list, but if you pass an empty string it just splits up every character.)
That's quite easy... just call the replace method on the string as follow...
var str = "Hello";
console.info(str.replace(/\B/g, " ");
What am I doing here is replacing on non-word boundary which is inside the word. It's just reverse of the word boundary denoted by "\b", which is around the word; think it as if you are matching the border of the word.