Skip to content


Repository files navigation


NPM Version NPM Downloads Node.js Version Build Status Test Coverage

Range header field parser.


This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install range-parser


var parseRange = require('range-parser')

parseRange(size, header, options)

Parse the given header string where size is the size of the selected representation that is to be partitioned into subranges. An array of subranges will be returned or negative numbers indicating an error parsing.

  • -2 signals a malformed header string
  • -1 signals an unsatisfiable range
// parse header from request
var subranges = parseRange(size, req.headers.range)

// the type of the subranges
if (subranges.type === 'bytes') {
  // the ranges
  subranges.forEach(function (r) {
    // do something with r.start and r.end


These properties are accepted in the options object.


Specifies if overlapping & adjacent subranges should be combined, defaults to false. When true, ranges will be combined and returned as if they were specified that way in the header.

parseRange(100, 'bytes=50-55,0-10,5-10,56-60', { combine: true })
// => [
//      { start: 0,  end: 10 },
//      { start: 50, end: 60 }
//    ]