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

  方法说明:

  输出规范格式的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;

  };