node.js中的path.normalize方法使用说明


Posted in Javascript onDecember 08, 2014

方法说明:

输出规范格式的path字符串。

语法:

path.normalize(p)

由于该方法属于path模块,使用前需要引入path模块(var path= require(“path”) )

例子:

path.normalize('/foo/bar//baz/asdf/quux/..')

// returns

'/foo/bar/baz/asdf'

源码:

// windows version 

  exports.normalize = function(path) { 

    var result = splitDeviceRe.exec(path), 

        device = result[1] || '', 

        isUnc = device && device.charAt(1) !== ':', 

        isAbsolute = exports.isAbsolute(path), 

        tail = result[3], 

        trailingSlash = /[\\\/]$/.test(tail); 

 

    // If device is a drive letter, we'll normalize to lower case. 

    if (device && device.charAt(1) === ':') { 

      device = device[0].toLowerCase() + device.substr(1); 

    } 

 

    // Normalize the tail path 

    tail = normalizeArray(tail.split(/[\\\/]+/).filter(function(p) { 

      return !!p; 

    }), !isAbsolute).join('\\'); 

 

    if (!tail && !isAbsolute) { 

      tail = '.'; 

    } 

    if (tail && trailingSlash) { 

      tail += '\\'; 

    } 

 

    // Convert slashes to backslashes when `device` points to an UNC root. 

    // Also squash multiple slashes into a single one where appropriate. 

    if (isUnc) { 

      device = normalizeUNCRoot(device); 

    } 

 

    return device + (isAbsolute ? '\\' : '') + tail; 

  };

Javascript 相关文章推荐
基于jquery的DIV随滚动条滚动而滚动的代码
Jul 20 Javascript
jquery鼠标滑过提示title具体实现代码
Aug 06 Javascript
JavaScript中匿名函数用法实例
Mar 23 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
Jun 21 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
Sep 22 Javascript
JavaScript实现微信号随机切换代码
Mar 09 Javascript
VeeValidate 的使用场景以及配置详解
Jan 11 Javascript
浅谈webpack 四个核心概念之Entry
Jun 12 Javascript
uniapp,微信小程序中使用 MQTT的问题
Jul 11 Javascript
JavaScript实现通讯录功能
Dec 27 Javascript
node.js中的path.sep方法使用说明
Dec 08 #Javascript
node.js中的path.resolve方法使用说明
Dec 08 #Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
Dec 08 #Javascript
node.js中的dns.getServers方法使用说明
Dec 08 #Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
Dec 08 #Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
Dec 08 #Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
Dec 08 #Javascript
You might like
thinkphp配置连接数据库技巧
2014/12/02 PHP
分享一个Laravel好用的Cache宏
2015/03/02 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Python学习笔记之os模块使用总结
2014/11/03 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
python抓取网页中链接的静态图片
2018/01/29 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python lxml中etree的简单应用
2019/05/10 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
智能钱包:Ekster
2019/11/21 全球购物
双语教学实施方案
2014/03/23 职场文书
协议书格式
2014/04/23 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
2014离婚协议书范文
2014/09/10 职场文书
安全先进班组材料
2014/12/26 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
Redis Lua脚本实现ip限流示例
2022/07/15 Redis
Python中的socket网络模块介绍
2022/07/23 Python