diff options
-rw-r--r-- | src/helpers.js | 2 | ||||
-rw-r--r-- | src/regex.js | 3 | ||||
-rw-r--r-- | src/transform.js | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/helpers.js b/src/helpers.js index 7fe9f7a..f3a36b9 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -72,7 +72,7 @@ function stringToMatrix(source) { source = source .replace(SVG.regex.whitespace, '') .replace(SVG.regex.matrix, '') - .split(',') + .split(SVG.regex.matrixElements) // convert string values to floats and convert to a matrix-formatted object return arrayToMatrix( diff --git a/src/regex.js b/src/regex.js index d08dc7b..a6ffb98 100644 --- a/src/regex.js +++ b/src/regex.js @@ -14,6 +14,9 @@ SVG.regex = { // Parse matrix wrapper , matrix: /matrix\(|\)/g + + // Elements of a matrix +, matrixElements: /,*\s+|,/ // Whitespace , whitespace: /\s/g diff --git a/src/transform.js b/src/transform.js index 2023439..c1afd73 100644 --- a/src/transform.js +++ b/src/transform.js @@ -130,7 +130,7 @@ SVG.extend(SVG.Element, { .split(/\)\s*/).slice(0,-1).map(function(str){ // generate key => value pairs var kv = str.trim().split('(') - return [kv[0], kv[1].split(',').map(function(str){ return parseFloat(str) })] + return [kv[0], kv[1].split(SVG.regex.matrixElements).map(function(str){ return parseFloat(str) })] }) // calculate every transformation into one matrix .reduce(function(matrix, transform){ |