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读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
jQuery 遍历json数组的实现代码
Sep 22 Javascript
客户端限制只能上传jpg格式图片的js代码
Dec 09 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
JavaScript引用类型和基本类型详解
Jan 06 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
JS原生带小白点轮播图实例讲解
Jul 22 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
Nov 28 Javascript
JS实现遍历不规则多维数组的方法
Mar 21 Javascript
vue自动化表单实例分析
May 06 Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 Javascript
vue实现计步器功能
Nov 01 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
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
php获取文件大小的方法
2014/02/26 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
javascript读写json示例
2014/04/11 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
python单链表实现代码实例
2013/11/21 Python
Python实现从url中提取域名的几种方法
2014/09/26 Python
python中引用与复制用法实例分析
2015/06/04 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
python try except 捕获所有异常的实例
2018/10/18 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
给男朋友的道歉信
2014/01/12 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL