Допустим есть строка вида aaaa|qqqq|www|bbbb;ccc Я хочу задать формат в виде $1|$2|$name|$4;$5 И получить объект согласно описанному выше формату с такими же ключами. Подразумевается что я сам несу ответственность за правильность введенного формата(т.е. строка должна иметь именно такой формат, который будет указан). Строка при этом может иметь больше описанных символов, в таком случае остальные символы попадают в последний элемент массива
Например: Строка - aaaa|qqqq|www|bbbb;ccc. Формат - $1|$2|$name|$4;$5. Должно получиться: {1: 'aaaa', 2: 'qqqq': name: 'www', 4: bbbb, 5: ccc}
Строка - aaaa|qqqq|www|bbbb;ccc216asdy1%@&!^67. Формат - $1|$2|$name|$4;$5. Должно получиться: {1: 'aaaa', 2: 'qqqq': name: 'www', 4: bbbb, 5: ccc216asdy1%@&!^67}
Понятно что можно нахардкодить с помощью регекспов. Но может есть какое-то более элегантное решение либо же даже готовый плагин\модуль
Я так понял разделители '|' и ';', так почему не воспользоваться split().
parseString=(text)=>{
let array=text.split('|'),lastElement;
lastElement=array.pop().split(';');
lastElement.forEach(e=>{
array.push(e)
})
return array
}
textToArray=(text,format)=>{
let err=false; //флаг проверяет количество переменных в формате и тексте
let textJSON='{';
let arrayFormat=parseString(format),
arrayText=parseString(text);
if(arrayFormat.length===arrayText.length){
for(let i=0;i<arrayFormat.length;i++){
if(i){textJSON+=','}
textJSON+="\""+arrayFormat[i].substr(1)+"\":"+"\""+arrayText[i]+"\""
}
}else(err=true)
textJSON+="}"
return err?'Ошибка формата':JSON.parse(textJSON)
}
console.log(textToArray("aaaa|qqqq|www|bbbb;ccc",'$1|$2|$name|$4;$5'))
console.log(textToArray("aaaa|qqqq|www|bbbb;ccc216asdy1%@&!^67",'$1|$2|$name|$4;$5'))
console.log(textToArray("aaaa|^67",'$1|$2|$dfgdfgd|$name|$4;$5'))
console.log(textToArray("aaaa|qqqq|sdfsdfsd|www|bbbb;ccc216asdy1%@&!^67",'$1|$2|$dfgdfgd|$name|$4;$5'))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть код на для вывода правильной последовательности n элементов, переписал его под python, но он не работаетВ чём моя ошибка?
Когда вызываешь функцию с new, то берется конструктор этой функции и создается объектКак можно вызвать такую функцию так, чтобы она вернула...
Как из строки такого вида "20:153" "1568:23" вытащить число после двоеточия?
Как можно реализовать (скриптом) вывод сегодняшней даты +60 днейТо есть, если сегодня, например, 07