2011-06-29 58 views
4

我有我試圖操縱一個簡單的字符串替換冒號:使用字符串替換使用Javascript和jQuery

您的訂單將盡快處理:

我用搶串:

var html = jQuery('.checkout td h4').html(); 

我再嘗試更換 ':' 使用:

html.replace(":", "."); 

當我將它打印到控制檯時,該字符串與原始字符串相同。我也試過在確認html變量的類型「串」的執行以下操作:

html = html + ""; 

這並不做任何事情。在四處搜索時,似乎replace函數執行RegEx搜索,並且「:」字符可能具有特殊含義。我不知道如何解決這個問題。有人能幫我擺脫這個臭大腸嗎?

回答

6

replace函數返回一個新字符串,並進行替換。
Javascript字符串是不可變的—它不能修改原始字符串。

你需要寫html = html.replace(":", ".");

+0

發誓的可能性我嘗試過,並沒有奏效......噢,好吧......現在肯定有效。謝謝! 9分鐘後,我會給你支票。 – tollmanz

0

它也可以做到這一點使用substring()

var str = "Your order will be processed soon:"; 
var str = str.substring(0,(str.length - 1)) + '.'; 
alert(str); 

JS Fiddle demo

雖然這是附加信息(因此CW),而不是一個嚴肅的建議,你應該做這種方式,因爲結腸(:)將總是必須是最後一個字符,是它不是,那麼其他的詞會縮短。

參考:

1

我認爲C++就是字符串是可變的,唯一的高級語言。這意味着replace不能修改它操作的字符串,所以必須返回一個新的字符串。

試試下面的不是

var element = jQuery('.checkout td h4'); 

element.html(element.html().replace(":", ".")); 

或者更準確(因爲你可能有多個元素)。

jQuery('.checkout td h4').html(
    function (index, oldHtml) { 
     return oldHtml.replace(":", "."); 
    } 
); 
4

略相關...

我無法得到這些答案的工作,以取代所有「:」在對URL編碼的字符%3A字符串,並修改了這個答案by'xdazz」工作:Javascript: Replace colon and comma characters得到...

str = str.replace(/:\s*/g, "%3a"); 

你的情況,這將是

str = str.replace(/:\s*/g, "."); 

如果你想用一個較長的字符串時間全部更換冒號。

希望這可以幫助別人。

相關問題