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获取input的value问题说明
Aug 19 Javascript
json对象转字符串如何实现
Dec 02 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
基于jquery实现人物头像跟随鼠标转动
Aug 23 Javascript
基于jquery实现ajax无刷新评论
Aug 19 Javascript
如何利用JSHint减少JavaScript的错误
Aug 23 Javascript
node中koa中间件机制详解
Aug 22 Javascript
Node.js学习之查询字符串解析querystring详解
Sep 28 Javascript
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 Javascript
讲解vue-router之什么是嵌套路由
May 28 Javascript
JavaScript设计模式之策略模式实现原理详解
May 29 Javascript
使用React-Router实现前端路由鉴权的示例代码
Jul 26 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
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
PHP生成静态页面详解
2006/12/05 PHP
一篇不错的PHP基础学习笔记
2007/03/18 PHP
使用PHP批量生成随机用户名
2008/07/10 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
调试php程序的简单步骤
2019/10/04 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
json跟xml的对比分析
2008/06/10 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
Python中运行并行任务技巧
2015/02/26 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
python requests库的使用
2021/01/06 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
献爱心倡议书
2014/04/14 职场文书
药店促销活动总结
2014/07/10 职场文书
实习指导老师意见
2015/06/04 职场文书
Python何绘制带有背景色块的折线图
2022/04/23 Python