JavaScript实现解析INI文件内容的方法


Posted in Javascript onNovember 17, 2016

本文实例讲述了JavaScript实现解析INI文件内容的方法。分享给大家供大家参考,具体如下:

.ini 是Initialization File的缩写,即初始化文件,ini文件格式广泛用于软件的配置文件。

INI文件由节、键、值、注释组成。

根据node.js版本的node-iniparser改写了个JavaScript函数来解析INI文件内容,传入INI格式的字符串,返回一个json object。

function parseINIString(data){
  var regex = {
    section: /^\s*\s*([^]*)\s*\]\s*$/,
    param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/,
    comment: /^\s*;.*$/
  };
  var value = {};
  var lines = data.split(/\r\n|\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;
}

测试INI内容:

JavaScript实现解析INI文件内容的方法

返回结果对象:

JavaScript实现解析INI文件内容的方法

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
利用js对象弹出一个层
Mar 26 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
Dec 15 Javascript
显示今天的日期js代码(阳历和农历)
Sep 30 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 Javascript
AngularJS 自定义指令详解及示例代码
Aug 17 Javascript
javascript实现简单的on事件绑定
Aug 23 Javascript
微信小程序 传值取值的几种方法总结
Jan 16 Javascript
vue中七牛插件使用的实例代码
Jul 28 Javascript
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
基于VUE实现的九宫格抽奖功能
Sep 30 Javascript
微信小程序版本自动更新的方法
Jun 14 Javascript
JS如何在不同平台实现多语言方式
Jul 16 Javascript
详解AngularJS中的表单验证(推荐)
Nov 17 #Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
Nov 17 #Javascript
用Vue.js实现监听属性的变化
Nov 17 #Javascript
JS实现类似51job上的地区选择效果示例
Nov 17 #Javascript
JS实现的适合做faq或menu滑动效果示例
Nov 17 #Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 #Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
Nov 17 #Javascript
You might like
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php简单分页类实现方法
2015/02/26 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
Python实现发送与接收邮件的方法详解
2018/03/28 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
python学生管理系统的实现
2020/04/05 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
如何强制垃圾回收
2015/10/06 面试题
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
求职者怎样写自荐信
2014/04/13 职场文书
岗位职责说明书模板
2014/07/30 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js
openstack中的rpc远程调用的方法
2021/07/09 Python
MySQL空间数据存储及函数
2021/09/25 MySQL