Присоединяйтесь и заменяйте несколько раз строку - PullRequest
4 голосов
/ 09 мая 2011

У меня есть эта строка:

var data = "res_per_page=10&page_num=1&location_id=107&location_id=174&location_id=110&location_id=180"

Я бы хотел сгруппировать все параметры location_id в один, разделенный _. Как этого добиться? Строка результата должна быть следующей:

var data = "res_per_page=10&page_num=1&location_id=107_174_110_180"

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

Как насчет;(предполагается, что идентификаторы - это цифры от 1 до 9 цифр)

var newdata = [];
data = data.replace(/&?location_id=(\d{1,9})/ig, function(m, k, v) {
        newdata.push(k);
        return "";
    });
data += "&location_id=" + newdata.join("_");
alert(data);


in:  "res_per_page=10&page_num=1&location_id=107&location_id=174&location_id=110&location_id=180"
out: "res_per_page=10&page_num=1&location_id=107_174_110_180"
1 голос
/ 09 мая 2011

Вот, пожалуйста:

var dataInit = "res_per_page=10&page_num=1&location_id=107&"+
               "location_id=174&location_id=110&location_id=180"
               .split('&location_id='),
data = dataInit[0]+'&location_id='+dataInit.slice(1).join('_');

Теперь значение data равно: res_per_page=10&page_num=1&location_id=107_174_110_180

...