2011-09-10 218 views
4

我试图创建一个函数,它插入字符串参数的字符之间的空格,然后返回一个新的字符串,它包含与空格字符分隔的参数相同的字符。如何在字符串中的每个字符之间添加空格?

E.g.

Hello 

成为

H e l l o 

我是一个巨大的新手,我敢肯定,这似乎是一个没有brain'er到一些人,但我似乎无法得到我的头在附近。

回答

8

可以使用split()函数将串入的单个字符的数组,然后join()函数把这一回字符串在其中指定一个连接字符(指定空间作为连接字符):

function insertSpaces(aString) { 
    return aString.split("").join(" "); 
} 

(注意参数split()是你想拆就这样,例如,你可以使用split(",")分手逗号分隔的列表中的角色,但如果你传递一个空字符串,它只是分裂了每一个字符)

+0

感谢您的信息。我认为我明白了这一点。 aString.split分割每个字符,然后连接与另一个空间一起回来。 这就是说...由于某种原因,当我尝试调用函数 - 它不工作...我不是100%确定我做错了什么。 测试功能中,我使用以下: \t

+0

啊。我得到答案只是为了让你知道。我没有在我的参数字符串insertSpaces('test')周围加上''' –

1

另类对于分割和结合​​的解决方案可能是:

'Hello'.replace(/(.(?!$))/g,'$1 '); //=> H e l l o 
//    ^all characters but the last 
//       ^replace with found character + space 

或函数中:

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 

或作为字符串函数原型:

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 
0
function insertSpaces(aString) 
{ 
    return aString.spilt('').join(' '); 
} 
2

这是相当容易.. 。只需调用字符串上的替换方法如下...

var str = "Hello"; 
console.info(str.replace(/\B/g, " "); 

我在这里做什么取代了单词内部的非单词边界。它与单词边界相反,由单词“\ b”表示;认为它就好像你在匹配单词的边界。

相关问题