diff --git a/README.md b/README.md index 9651e4e..03643fb 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ colorString.get.hsl('hsl(360 100% 50%)') // [0, 100, 50, 1] colorString.get.hsl('hsla(360, 60%, 50%, 0.4)') // [0, 60, 50, 0.4] colorString.get.hsl('hsl(360 60% 50% / 0.4)') // [0, 60, 50, 0.4] +colorString.get.hwb('hwb(60 3% 60%)') // [60, 3, 60, 1] colorString.get.hwb('hwb(60, 3%, 60%)') // [60, 3, 60, 1] colorString.get.hwb('hwb(60, 3%, 60%, 0.6)') // [60, 3, 60, 0.6] diff --git a/index.js b/index.js index f175c23..ab16f50 100644 --- a/index.js +++ b/index.js @@ -153,7 +153,7 @@ cs.get.hwb = function (string) { return null; } - const hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; + const hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/; const match = string.match(hwb); if (match) { diff --git a/test.js b/test.js index e7f6cc6..555a2aa 100644 --- a/test.js +++ b/test.js @@ -24,6 +24,7 @@ assert.deepEqual(string.get.hsl('hsl(240deg, 100%, 50.5%)'), [240, 100, 50.5, 1] assert.deepEqual(string.get.hsl('hsl(240deg 100% 50.5%)'), [240, 100, 50.5, 1]); assert.deepEqual(string.get.hwb('hwb(240, 100%, 50.5%)'), [240, 100, 50.5, 1]); assert.deepEqual(string.get.hwb('hwb(240deg, 100%, 50.5%)'), [240, 100, 50.5, 1]); +assert.deepEqual(string.get.hwb('hwb(12 50% 0%)'), [12, 50, 0, 1]); // Generic .get() assert.deepEqual(string.get('invalid'), null); @@ -44,6 +45,7 @@ assert.deepEqual(string.get('hsl(240deg, 100%, 50.5%)'), {model: 'hsl', value: [ assert.deepEqual(string.get('hsl(240deg 100% 50.5%)'), {model: 'hsl', value: [240, 100, 50.5, 1]}); assert.deepEqual(string.get('hwb(240, 100%, 50.5%)'), {model: 'hwb', value: [240, 100, 50.5, 1]}); assert.deepEqual(string.get('hwb(240deg, 100%, 50.5%)'), {model: 'hwb', value: [240, 100, 50.5, 1]}); +assert.deepEqual(string.get('hwb(12 50% 0%)'), {model: 'hwb', value: [12, 50, 0, 1]}); // Invalid generic .get() calls assert.deepEqual(string.get('hsla(250, 100%, 50%, 50%)'), null);