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获取图片长和宽度的代码
Nov 24 Javascript
javascript中的return和闭包函数浅析
Jun 06 Javascript
使用delegate方法为一个tr标签加一个链接
Jun 27 Javascript
js控制文本框只输入数字和小数点的方法
Mar 10 Javascript
基于javascript制作微信聊天面板
Aug 09 Javascript
js 判断各种数据类型的简单方法(推荐)
Aug 29 Javascript
BootStrap tab选项卡使用小结
Aug 09 Javascript
详解Angular的8个主要构造块
Jun 20 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 Javascript
在vue-cli中组件通信的方法
Dec 16 Javascript
vue3.0中使用postcss-pxtorem的具体方法
Nov 20 Javascript
深入理解redux之compose的具体应用
Jan 12 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树的代码,可以嵌套任意层
2006/10/09 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
Python通过解析网页实现看报程序的方法
2014/08/04 Python
Python模块文件结构代码详解
2018/02/03 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
python实现对输入的密文加密
2019/03/20 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
C#的几个面试问题
2016/05/22 面试题
护理学毕业生自荐信
2013/10/02 职场文书
成人毕业生自我鉴定
2013/10/18 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
老人院义工活动感想
2015/08/07 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
PyTorch的Debug指南
2021/05/07 Python
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python
mysql函数之截取字符串的实现
2022/08/14 MySQL