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去除重复字符串两种实现方法
Jan 09 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
Sep 12 Javascript
ext中store.load跟store.reload的区别示例介绍
Jun 17 Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
原生JavaScript实现的简单放大镜效果示例
Feb 07 Javascript
javascript获取元素的计算样式
May 24 Javascript
vue动态渲染svg、添加点击事件的实现
Mar 13 Javascript
vue-autoui自匹配webapi的UI控件的实现
Mar 20 Javascript
原生JS利用transform实现banner的无限滚动示例代码
Jun 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 PDO中文乱码解决办法
2009/07/20 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
django 信号调度机制详解
2019/07/19 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
python如何调用字典的key
2020/05/25 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
详解px单位html5响应式方案
2018/03/08 HTML / CSS
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
SQL注入攻击的种类有哪些
2013/12/30 面试题
美术教学感言
2014/02/22 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
弄虚作假心得体会
2014/09/10 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
python实现三次密码验证的示例
2021/04/29 Python
Python pygame实现中国象棋单机版源码
2021/06/20 Python
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS