2011-09-10 227 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」表示;認爲它就好像你在匹配單詞的邊界。

相關問題