How to add spaces between every character in a str

2020-02-01 18:50发布

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, separated by space characters.

E.g.

Hello

becomes

H e l l o

I'm a massive novice and I'm sure that this might seem like a no-brain'er to some people, but I just can't seem to get my head around it.

4条回答
forever°为你锁心
2楼-- · 2020-02-01 19:32

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

查看更多
Deceive 欺骗
3楼-- · 2020-02-01 19:45
function insertSpaces(aString)
{
  return aString.split('').join(' ');
}
查看更多
家丑人穷心不美
4楼-- · 2020-02-01 19:49

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
查看更多
啃猪蹄的小仙女
5楼-- · 2020-02-01 19:55

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.

查看更多
登录 后发表回答