62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
// Storage for regular expressions
|
|
SVG.regex = {
|
|
// Parse unit value
|
|
numberAndUnit: /^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i
|
|
|
|
// Parse hex value
|
|
, hex: /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i
|
|
|
|
// Parse rgb value
|
|
, rgb: /rgb\((\d+),(\d+),(\d+)\)/
|
|
|
|
// Parse reference id
|
|
, reference: /#([a-z0-9\-_]+)/i
|
|
|
|
// splits a transformation chain
|
|
, transforms: /\)\s*,?\s*/
|
|
|
|
// Whitespace
|
|
, whitespace: /\s/g
|
|
|
|
// Test hex value
|
|
, isHex: /^#[a-f0-9]{3,6}$/i
|
|
|
|
// Test rgb value
|
|
, isRgb: /^rgb\(/
|
|
|
|
// Test css declaration
|
|
, isCss: /[^:]+:[^;]+;?/
|
|
|
|
// Test for blank string
|
|
, isBlank: /^(\s+)?$/
|
|
|
|
// Test for numeric string
|
|
, isNumber: /^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i
|
|
|
|
// Test for percent value
|
|
, isPercent: /^-?[\d\.]+%$/
|
|
|
|
// Test for image url
|
|
, isImage: /\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i
|
|
|
|
// split at whitespace and comma
|
|
, delimiter: /[\s,]+/
|
|
|
|
// The following regex are used to parse the d attribute of a path
|
|
|
|
// Matches all hyphens which are not after an exponent
|
|
, hyphen: /([^e])\-/gi
|
|
|
|
// Replaces and tests for all path letters
|
|
, pathLetters: /[MLHVCSQTAZ]/gi
|
|
|
|
// yes we need this one, too
|
|
, isPathLetter: /[MLHVCSQTAZ]/i
|
|
|
|
// matches 0.154.23.45
|
|
, numbersWithDots: /((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi
|
|
|
|
// matches .
|
|
, dots: /\./g
|
|
}
|