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.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
JS交换变量的方法
Jan 21 Javascript
使用js复制链接中的部分文字的方法
Jul 30 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
微信小程序 Button 组件详解及简单实例
Jan 10 Javascript
微信小程序 引用其他js文件实现代码
Feb 22 Javascript
基于BootStrap的前端分页带省略号和上下页效果
May 18 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
Dec 16 jQuery
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 Javascript
typescript配置alias的详细步骤
Aug 12 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
Aug 15 Javascript
使用node-media-server搭建一个简易的流媒体服务器
Jan 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
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
原生javascript兼容性测试实例
2013/07/01 Javascript
使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
2014/09/01 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python使用getpass库读取密码的示例
2017/10/10 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
应届本科生推荐信范文
2013/12/25 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
护理学专业求职信
2014/06/29 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
二年级语文下册复习计划
2015/01/19 职场文书
检讨书怎么写
2015/01/23 职场文书
师德承诺书2015
2015/04/28 职场文书
党员违纪检讨书
2015/05/05 职场文书
情人节单身感言
2015/08/03 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技
LeetCode189轮转数组python示例
2022/08/05 Python