Parser and serializer for lists of coordinates in SVG documents, such as the points
attribute of a <polyline>
element.
With npm: $ npm install svg-numbers
var parse = require('svg-numbers').parse
var numbers = parse('10, 15.20.8 -11,15-25+75 4.2e3')
console.log(numbers)
// [ 10, 15.2, .8, -11, 15, -25, 75, 4200 ]
var serialize = require('svg-numbers').serialize
var numbers = [10, 4.2, .333, -8]
var str = serialize(numbers)
console.log(str)
// '10,4.2.333-8'
Separators (commas and/or spaces) are left out wherever the SVG recommendation allows it. If you'd rather have separators everywhere, just use Array.prototype.join
:
var str = numbers.join(', ')
console.log(str)
// '10, 4.2, .333, -8'
If a syntax error is found, an error is thrown. The valid coordinates up to and until the syntax error are available as error.partial
:
try {
var numbers = parse('10, 20, , 30, 40')
} catch (error) {
console.log(error.partial)
// [ 10, 20 ]
}
(The W3C SVG recommendation has something to say about error processing.)
$ git clone https://github.com/PPvG/svg-numbers
$ cd svg-numbers
$ npm install
$ npm test
Use browserify. All major browsers are supported: