2014-01-06 2 views
0

У меня есть строка в видеJavascript разбить строку на любой другой символ

":x1:y1:x2:y2x3:y3:...:" 

и ключи и значения Xn и Yn произвольные значения, так что я не могу использовать длину строки

я хотел бы разделить эту строку в список или словарь, содержащий пары ключ-значение

{"x1":"y1", "x2":"y2", ...} 

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

+0

Нет, я не думаю, что есть. Почему бы вам использовать один и тот же разделитель, если вы хотите, чтобы они обрабатывались по-разному? – Barmar

+0

Я бы этого не сделал, но это, к сожалению, код, с которым я сейчас работаю: p – Enermis

+0

AFAIK, вам нужно выполнить синтаксический анализ самостоятельно, так как его формат широко не используется, поэтому я не думаю, что javascript потрудится предоставить что-нибудь удобное для этого. – TwilightSun

ответ

0

Попробуйте это:

var obj = (function(str){ 
    var result = {}; 

    str.replace(/([^\:]+)\:([^\:]+)/g, function($0, $1, $2){ 
    result[$1] = $2; 
    }); 

    return result; 
})('x1:y1:x2:y2:x3:y3'); 
+0

это сделало трюк. Спасибо, я забыл, что вы можете использовать «за исключением» в вашем регулярном выражении. – Enermis

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