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 each()函数如何优化循环DOM结构的性能
Dec 10 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
Apr 24 Javascript
JQuery的ready函数与JS的onload的区别详解
Nov 21 Javascript
浅谈javascript构造函数与实例化对象
Jun 22 Javascript
Bootstrap组件(一)之菜单
May 11 Javascript
jQuery内存泄露解决办法
Dec 13 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
Vue核心概念Action的总结
Jan 18 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
Jul 21 Javascript
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
详解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里的中文变量说明
2011/07/23 PHP
PHP循环结构实例讲解
2014/02/10 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
python中pass语句用法实例分析
2015/04/30 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
Python下简易的单例模式详解
2019/04/08 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
python批量修改ssh密码的实现
2019/08/08 Python
python实现批处理文件
2020/07/28 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
花卉与景观设计系大学生求职信
2013/10/01 职场文书
大学班长的职责
2014/01/27 职场文书
表决心的诗句大全
2014/03/11 职场文书
出生公证委托书
2014/04/03 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
如何在python中实现ECDSA你知道吗
2021/11/23 Python
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技
python神经网络 使用Keras构建RNN训练
2022/05/04 Python