2009-06-22 2 views
1

Скажем, у меня есть URL, который выглядит примерно так:Замена части строки на javascript?

http://www.mywebsite.com/param1:set1/param2:set2/param3:set3/

Я сделал это Название переменной в моей JavaScript, но сейчас я хочу, чтобы изменить «param2: set2» быть «param2: set5» или что-то еще. Как захватить эту часть строки и изменить ее?

Следует отметить, что «param2 ...» в строке может меняться, а также количество символов после «:». Я знаю, что могу использовать подстроку, чтобы получить часть строки спереди, но я не уверен, как ее захватить с конца или где-нибудь посередине.

ответ

6

Как насчет этого?

>>> var url = 'http://www.mywebsite.com/param1:set1/param2:set2/param3:set3/'; 
>>> url.replace(/param2:[^/]+/i, 'param2:set5'); 
"http://www.mywebsite.com/param1:set1/param2:set5/param3:set3/" 
4

Использование регулярных выражений;)

url.replace(/param2:([\d\w])+/, 'param2:new_string') 
+0

+1 - но не может быть нецифровых, не-словных символов после двоеточия, но перед следующей косой чертой? –

+0

ну, это просто быстрый пример того, как справиться с этой проблемой. Пользователь должен принять его для своих нужд :) – Mantas

0

Вы можете передавать регулярные выражения в функции match() и replace() в javascript.

2
var key = "param2"; 
var newKey = "paramX"; 
var newValue = "valueX"; 

var oldURL = "http://www.mywebsite.com/param1:set1/param2:set2/param3:set3/"; 

var newURL = oldURL.replace(new RegExp(key + ":[^/]+"), newKey + ":" + newValue); 
Смежные вопросы