NodeJS使用并解析.properties配置文件
发布于 3年前 作者 dolphinboy 2749 次浏览 最后一次编辑是 2年前
/**
 * Created with JetBrains WebStorm.
 * User: 王文龙
 * Email: longxinanlan[@msn](/user/msn).cn
 * Date: 12-6-8 下午12:06
 * 解析properties文件
 */

var fs = require('fs');

exports.parseproperties = function(uri, encoding){
    var encoding = encoding==null?'UTF-8':encoding;  //定义编码类型
    try {
        var content = fs.readFileSync(uri, encoding);
        var regexjing = /\s*(#+)/;  //去除注释行的正则
        var regexkong = /\s*=\s*/;  //去除=号前后的空格的正则
        var keyvalue = {};  //存储键值对

        var arr_case = null;
        var regexline = /.+/g;  //匹配换行符以外的所有字符的正则
        while(arr_case=regexline.exec(content)) {  //过滤掉空行
            if (!regexjing.test(arr_case)) {  //去除注释行
                keyvalue[arr_case.toString().split(regexkong)[0]] = arr_case.toString().split(regexkong)[1];  //存储键值对
                console.log(arr_case.toString());
            }
        }
    } catch (e) {
        //e.message  //这里根据自己的需求返回
        return null;
    }
    return keyvalue;
}

这样只能暂时解析如下的格式: #邮件服务参数

mail_host=smtp.gmail.com

下面这样格式的还没处理: #邮件服务参数

mail_host=smtp.gmail.com #定义用来发送邮件的邮箱服务器

下次更新了再写好一点,经验不足,欢迎吐槽……

6 回复

还不太会用这个客户端编辑器的代码高亮,将就着吧!

直接用json多好。。。

markdown 的语法… 再次中着… 请将代码整体缩进 4 空格或在前后各加 3 个反引号的行进行标记 ``` coding ```

JSON对于人来说,可视化不如properties,在我看来JSON适合数据传输,properties适合简单的做简单的属性配置

楼主,请教你的代码头部的文件作者时间是在webstorm通过什么快捷键生成的啊?

回到顶部