2012-06-07 28 views
2

以下是問題:如何替換字符串中的值可能會有所不同? 我猜你需要使用正則表達式..使用javascript替換動態字符串值

這裏就是我想要做的事:

var height = 500; 

    var urlstr = "...?height=300&width=200"; 

    var newurl = urlstr.replace("height=%&","height="+height+"&"); 

    alert(newurl); 

注意到,我目前正在考慮使用動態值「 %「符號,但這是行不通的。我不擅長使用正則表達式,並會很感激你是否有任何人可以給我一個提示,或者交替告訴我,如果我錯誤地接近這個)

回答

3

是的,你需要正則表達式。幸運的是它不是很複雜:

var height = 500; 
var urlstr = "...?height=300&width=200"; 
var newurl = urlstr.replace(/(height=)([0-9]+)/, '$1' + height); 

alert(newurl); 
+0

感謝那些完美地工作,如果你不介意我問,這是什麼做一點「$ 1」?我有點困惑,該部分.. PS攪拌機規則:) – user1199434

+0

'$ 1'指的是第一個匹配的組,這是'高度='。我很懶,不想寫出'height =',所以我將它與'$ 1'相匹配。 「$ 2」包含舊高度的內容,以防萬一你需要它。 – Blender

+0

是的,攪拌機規則;)它真棒。 – Blender

2

「%」將被urlencoded「%25」。
您參考,
JavaScript的encodeURIComponent方法