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 相关文章推荐
Jquery Ajax的Get方式时需要注意URL地方
Apr 07 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
Sep 06 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
举例简介AngularJS的内部语言环境
Jun 17 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
Vue.js快速入门教程
Sep 07 Javascript
jQuery的ready方法实现原理分析
Oct 26 Javascript
vue实现学生录入系统之添加删除功能
Jul 11 Javascript
JavaScript变量提升和严格模式实例分析
Jan 27 Javascript
vue-cli3跨域配置的简单方法
Sep 06 Javascript
js实现简单抽奖功能
Nov 24 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中调用ASP.NET的WebService的代码
2011/04/22 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
微信小程序实时聊天WebSocket
2018/07/05 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
python调用shell的方法
2013/11/20 Python
python实现kMeans算法
2017/12/21 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
MIS软件工程师的面试题
2016/04/22 面试题
成教自我鉴定
2013/10/27 职场文书
二年级学生评语大全
2014/04/23 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS