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实现的所谓的滑动门
May 23 Javascript
Add a Formatted Table to a Word Document
Jun 15 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
Aug 27 Javascript
JavaScript类和继承 prototype属性
Sep 03 Javascript
Node.js开发指南中的简单实例(mysql版)
Sep 17 Javascript
jQuery中:hidden选择器用法实例
Dec 30 Javascript
Javascript基础教程之数据类型 (数值 Number)
Jan 18 Javascript
详解javascript传统方法实现异步校验
Jan 22 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
js实现查询商品案例
Jul 22 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
PHP5/ZendEngine2的改进
2006/10/09 PHP
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
php 文件状态缓存带来的问题
2008/12/14 PHP
php记录代码执行时间(实现代码)
2013/07/05 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
强制设为首页代码
2006/06/19 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
pandas带有重复索引操作方法
2018/06/08 Python
python实现ID3决策树算法
2018/08/29 Python
Python实现多属性排序的方法
2018/12/05 Python
Python求离散序列导数的示例
2019/07/10 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
python内打印变量之%和f的实例
2020/02/19 Python
Python将字典转换为XML的方法
2020/08/01 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
八年级数学教学反思
2014/01/31 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python