2012-06-07 3 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 blender rules :) – user1199434

+0

'$ 1' относится к первой сопоставляемой группе, которая является' height = '. Я был ленив и не хотел выписывать 'height =', поэтому я сопоставил его с '$ 1'. '$ 2' содержит содержимое старой высоты, на всякий случай, когда вам это понадобится. – Blender

+0

И да, правила Блендера;) Это потрясающе. – Blender

2

«%» будет присвоен «% 25».
для исх,
Javascript encodeURIComponent

Смежные вопросы