парсер javascript для строки, содержащей данные .ini

Если строка содержит данные файла .ini, как я могу разобрать ее в JavaScript? Есть ли парсер JavaScript, который поможет в этом отношении?

здесь обычно строка содержит содержимое после чтения файла конфигурации. (чтение не может быть сделано через javascript, но каким-то образом я собираю информацию .ini в строку.)

 sat06 окт. 2010 г., 08:44
да, он содержит разделы, пару ключ-значение, комментарии.
 Alexander Sagen06 окт. 2010 г., 08:42
INI-файлы могут различаться по формату, вы просто говорите о строке разделенных новой строкой пар ключ-значение или есть также разделы, комментарии и т. Д. Желаемый ввод и вывод будут полезны

Ответы на вопрос(1)

Я написал функцию JavaScript, вдохновленнуюузел-iniparser.js

function parseINIString(data){
    var regex = {
        section: /^\s*\[\s*([^\]]*)\s*\]\s*$/,
        param: /^\s*([^=]+?)\s*=\s*(.*?)\s*$/,
        comment: /^\s*;.*$/
    };
    var value = {};
    var lines = data.split(/[\r\n]+/);
    var section = null;
    lines.forEach(function(line){
        if(regex.comment.test(line)){
            return;
        }else if(regex.param.test(line)){
            var match = line.match(regex.param);
            if(section){
                value[section][match[1]] = match[2];
            }else{
                value[match[1]] = match[2];
            }
        }else if(regex.section.test(line)){
            var match = line.match(regex.section);
            value[match[1]] = {};
            section = match[1];
        }else if(line.length == 0 && section){
            section = null;
        };
    });
    return value;
}

2017-05-10 обновлено: исправлена ​​ошибка с ключами, содержащими пробелы.

РЕДАКТИРОВАТЬ:

Пример чтения и разбора файла ini

 cuixiping10 мая 2017 г., 11:00
Я исправил случай с ключами, содержащими пробелы. Вы можете попробовать это снова. @ m1alesis
 m1alesis04 мая 2017 г., 12:10
это не работает для ключей, которые содержат пробелы
 dlchambers08 окт. 2013 г., 14:52
Это хорошо работает для меня - спасибо за публикацию. Одно предостережение заключается в том, что, в отличие от большинства функций обработки INI, разделы и параметры, возвращаемые этим анализатором, чувствительны к регистру.

Ваш ответ на вопрос