Показать сообщение отдельно
  #7 (permalink)  
Старый 16.08.2018, 17:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

var reg = /(?:([^|]+)?=)?([^|]+)/g;
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434";
var current, i = 1, result = {};


while(current = reg.exec(str)){
  result[current[1] || 'noname' + i++] = (+current[2]).toString() === current[2] ? +current[2] : current[2];
}

alert(JSON.stringify( 
  result
,0,4))

Artur_Hopf
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434";
var obj = [];
str = str.toString().split("|");
for (i = 0; i < str.length; i++){
    str[i] = str[i].toString().split("=");
    obj[i] = {}
    if(str[i][1]){   
        obj[i][str[i][0]] = str[i][1];     
    }else{   
        obj[i][''] = str[i][0];
    }
}
console.log(obj);
Ещё в современном js можно делать так:
var key = 'keyName';
var obj = {[key]: 'value'};
alert(JSON.stringify( 
  obj
,0,4))
но пока не стоит.)
__________________
29375, 35

Последний раз редактировалось Aetae, 16.08.2018 в 17:04.
Ответить с цитированием