2014-05-19 122 views
0

我不想使用拆分或連接。只替換第一個子元素

var str = "cause variety of files"; 
alert(str.replace(" " , "_")); 

上述輸出的代碼:"cause_variety of files"

我尋求的輸出是:"cause_variety_of_files"

+0

@JoaoPalma - 你是對的。我問沒有使用拆分,並加入閱讀問題第一 –

+0

與正則表達式的解決方案也存在,如果你看到答案與最upvotes –

+0

哦,是的。謝謝你的信息。 –

回答

3

嘗試此代碼:

str.replace(/ /g, "_"); 

缺省情況下,replace函數替換中第一次出現。所以你必須使用RegExp和global標誌。

您可以瞭解更多關於常客表達式在這裏:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

+1

「你必須使用正則表達式」肯定沒有解釋正則表達式的作用。你應該多解釋一下。 –

+0

你能解釋它是如何工作的嗎? –

+0

我剛剛編輯我的回答 – Magus

0

嘗試一下本作多個空間

str.replace(/\s+/g,'_'); 

或空單

str.replace(/\s/g,'_'); 
+3

'試試這個'不教給提問者什麼。請解釋你做了什麼,爲什麼它應該工作,否則這不是一個好的答案。 –

0

嘗試使用正則表達式和replace()功能:

$(document).ready(function() { 
    var elem = "cause variety of files"; 
    console.log(elem.replace(/\s+/g, '_')); 
}); 

正則表達式使用\ s +模式獲取所有空格(1或更多),並將其替換爲您喜歡的字符串。 在你的情況下一個下劃線。

+1

您不應該像調試語句那樣使用'alert()'。 'console.log()'應該用於調試(也因爲你可以在開發工具中使用斷點,如果你需要暫停執行)。也請解釋你的正則表達式的作用 –