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 相关文章推荐
你真的了解JavaScript吗?
Feb 24 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
Jul 15 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
基于jQuery实现简单的折叠菜单效果
Nov 23 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
Dec 26 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
Jan 13 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 Javascript
JavaScript hasOwnProperty() 函数实例详解
Aug 04 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
angular 实现下拉列表组件的示例代码
Mar 09 Javascript
一个小时快速搭建微信小程序的方法步骤
Apr 15 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脚本的10个技巧(7)
2006/10/09 PHP
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
Python实现队列的方法
2015/05/26 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
什么是Python中的匿名函数
2020/06/02 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
工程业务员岗位职责
2013/12/31 职场文书
《散步》教学反思
2014/03/02 职场文书
拾金不昧感谢信
2015/01/21 职场文书
社区母亲节活动总结
2015/02/10 职场文书
2015国庆节宣传语
2015/07/14 职场文书
员工考勤管理制度
2015/08/06 职场文书
团队拓展训练感想
2015/08/07 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS