2012-11-27 33 views
1

我想從現有字符串中生成一個新字符串。 javascript在新生成的字符串中,除''(空格)外,所有字符都將以'*'表示。 例如,如果現有的字符串是從exsting字符串創建字符串,其中每個字符用*表示,並且只用空格表示


「我藏起來」

那麼新genrated字符串將


"**** **"

我想這樣的,但它不工作。

function hiddenData() 
{ 
var size = word.length; 
for (var i = 0; i <= size; i++) 
{ 
    if (word[i] == ' ') { 
     hiddenStr[i] = ' '; 
    } 
    else 
    { 
     hiddenStr[i] = '_'; 
    } 
} 
hiddenStr[i] = '\0'; 
} 

對不起,我可憐的解釋,

+1

該代碼有兩個主要問題。 1. for循環中的條件不正確,應該是'i

+1

@AnthonyGrist在JS中沒有塊範圍變量(參見'let'關鍵字),'i'完全可用。並且訪問太大的'i'不會出錯,它只是返回'undefined'。 – Prinzhorn

+3

您的函數應該接收'word'作爲參數並返回'hiddenStr'作爲結果,而不是奇蹟般地改變一些全局變量。 –

回答

1

使用replace()和正則表達式。

var str=word.replace(/[^ ]/g, '*'); 
+0

非常感謝。 – mshahbazm

7

使用正則表達式

alert(word.replace(/[^ ]/g, '*')); 
+0

感謝您的快速響應 – mshahbazm