#javascript #регулярные_выражения #парсер
Имеется такой текст : Date: Fri, 01 Apr 2016 03:21:49 GMT Server: nginx Content-Type: application/x-rar-compressed Cache-Control: no-cache, private Connection: keep-alive Accept-Ranges: bytes Keep-Alive: timeout=15 Content-Length: 63000000 или он может быть еще примерно таким: Date: Fri, 01 Apr 2016 03:17:30 GMT Last-Modified: Sat, 13 Dec 2014 08:28:52 GMT Server: nginx ETag: W/"548bf8c4-28496" Vary: Accept-Encoding Content-Type: image/jpeg Connection: keep-alive Content-Encoding: gzip В общем, нужно спарсить (если нету текста со значением то пропуск,как например в первом примере есть Content-Lenth: ... , а во втором нету) следующее : Content-Type: ..... (может быть только что то типа application/exe , image/png и т.д) Content-Length: ..... (могут быть любые цифры) как это можно сделать? учитывая что один или оба значения могут отсутствовать
Ответы
Ответ 1
Можно поступить следующим образом var text = 'Date: Fri, 01 Apr 2016 03:21:49 GMT \ Server: nginx \ Content-Type: application/x-rar-compressed \ Cache-Control: no-cache, private \ Connection: keep-alive \ Accept-Ranges: bytes \ Keep-Alive: timeout=15 \ Content-Length: 63000000'; var result = false; if( result = text.match( /Content-Length:\s*(\d+)/ )) { console.log(result[1]); } if( result = text.match( /Content-Type:\s*([^\s]+)/ )) { console.log(result[1]); }Ответ 2
Почему бы вам для начала не разбить это на массив строк? А дальше каждую строку парсить , ведь у вас строка имеет вид ключ: значение /** Date: Fri, 01 Apr 2016 03:21:49 GMT Server: nginx Content-Type: application/x-rar-compressed Cache-Control: no-cache, private Connection: keep-alive Accept-Ranges: bytes Keep-Alive: timeout=15 Content-Length: 63000000 */ var txt; // текст выше var lines = txt.split('\n'); // получаем строки // теперь можем работать уже с каждой строкой for(var i = 0; i < lines.length; i++) { var line = lines[i]; var props = line.split(':'); var key = props[0]; // заголовок var value = props[1]; // значение заголовка }
Комментариев нет:
Отправить комментарий