NodeJS使用并解析.properties配置文件
发布于 12 年前 作者 dolphinboy 16266 次浏览 最后一次编辑是 8 年前
/**
 * 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 回复

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

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

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

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

配置项多时,用JSON简直要疯掉的节奏

回到顶部