包含.ini数据的字符串的JavaScript解析器

前端之家收集整理的这篇文章主要介绍了包含.ini数据的字符串的JavaScript解析器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果一个字符串包含.ini文件数据,我如何用 JavaScript解析?
有没有任何JavaScript解析器在这方面有所帮助?

这里,通常字符串包含读取配置文件后的内容. (阅读不能通过JavaScript,但不知何故我收集.ini信息在一个字符串.)

解决方法

我写了一个由 node-iniparser.js启发的JavaScript函数
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更新:修复密钥的bug包含空格.

猜你在找的JavaScript相关文章