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 相关文章推荐
Jquery 插件学习实例1 插件制作说明与tableUI优化
Apr 02 Javascript
Extjs在exlipse中设置自动提示的方法
Apr 07 Javascript
浅谈Javascript实现继承的方法
Jul 06 Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
Aug 18 Javascript
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
微信小程序实现城市列表选择
Jun 05 Javascript
Vue路由模块化配置的完整步骤
Aug 14 Javascript
JavaScript实现京东放大镜效果
Dec 03 Javascript
微信小程序日历插件代码实例
Dec 04 Javascript
推荐几个不错的console调试技巧实现
Dec 20 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
Sony CFR 320 修复改造
2020/03/14 无线电
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
jQuery 入门讲解1
2009/04/15 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
python实现提取百度搜索结果的方法
2015/05/19 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
python中的数据结构比较
2019/05/13 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
python爬取抖音视频的实例分析
2021/01/19 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
德国高性价比网上药店:medpex
2017/07/09 全球购物
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
PyQt 如何创建自定义QWidget
2021/03/24 Python
四年的个人工作自我评价
2013/12/10 职场文书
初中生期末考试的自我评价
2013/12/17 职场文书
小学生美德少年事迹
2014/02/02 职场文书
保护黄河倡议书
2014/05/16 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
无故旷工检讨书
2015/08/15 职场文书
职场新人刚入职工作总结该怎么写?
2019/05/15 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
基于Redis过期事件实现订单超时取消
2021/05/08 Redis