Skip to content

Commit 5afeccc

Browse files
gallyamowLitoMore
andauthored
parsing no comma rgb(a) (#74)
* parsing no comma rgb(a) see https://github.com/Qix-/color/issues/257 * Update index.js Co-authored-by: LitoMore <[email protected]> --------- Co-authored-by: LitoMore <[email protected]>
1 parent 52ceb47 commit 5afeccc

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ cs.get.rgb = function (string) {
5252

5353
const abbr = /^#([a-f\d]{3,4})$/i;
5454
const hex = /^#([a-f\d]{6})([a-f\d]{2})?$/i;
55-
const rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/;
56-
const per = /^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/;
55+
const rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/;
56+
const per = /^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/;
5757
const keyword = /^(\w+)$/;
5858

5959
let rgb = [0, 0, 0, 1];

test.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ assert.deepEqual(string.get('hwb(240deg, 100%, 50.5%)'), {model: 'hwb', value: [
4949
assert.deepEqual(string.get('hsla(250, 100%, 50%, 50%)'), null);
5050
assert.deepEqual(string.get('hsl(250 100% 50% / 50%)'), null);
5151
assert.deepEqual(string.get('rgba(250, 100%, 50%, 50%)'), null);
52+
assert.deepEqual(string.get('rgba(250 100% 50% 50%)'), null);
5253
assert.deepEqual(string.get('333333'), null);
5354
assert.strictEqual(string.get('#1'), null);
5455
assert.strictEqual(string.get('#f'), null);
@@ -73,6 +74,7 @@ assert.deepEqual(string.get.hsl('hsl(+240, 100%, 50.5%)'), [240, 100, 50.5, 1]);
7374
assert.deepEqual(string.get.hsl('hsl(+240 100% 50.5%)'), [240, 100, 50.5, 1]);
7475
assert.deepEqual(string.get.rgb('rgba(200, +20, -233, -0.0)'), [200, 20, 0, 0]);
7576
assert.deepEqual(string.get.rgb('rgba(200 +20 -233 / -0.0)'), [200, 20, 0, 0]);
77+
assert.deepEqual(string.get.rgb('rgba(200 +20 -233 -0.0)'), [200, 20, 0, 0]);
7678
assert.deepEqual(string.get.rgb('rgba(200, +20, -233, -0.0)'), [200, 20, 0, 0]);
7779
assert.deepEqual(string.get.rgb('rgba(200 +20 -233 / -0.0)'), [200, 20, 0, 0]);
7880
assert.deepEqual(string.get.hsl('hsla(+200, 100%, 50%, -0.2)'), [200, 100, 50, 0]);
@@ -113,13 +115,19 @@ assert.deepEqual(string.get.rgb('#c814e900'), [200, 20, 233, 0]);
113115
assert.deepEqual(string.get.rgb('#c814e9ff'), [200, 20, 233, 1]);
114116
assert.deepEqual(string.get.rgb('rgba(200, 20, 233, 0.2)'), [200, 20, 233, 0.2]);
115117
assert.deepEqual(string.get.rgb('rgba(200 20 233 / 0.2)'), [200, 20, 233, 0.2]);
118+
assert.deepEqual(string.get.rgb('rgba(200 20 233 0.2)'), [200, 20, 233, 0.2]);
116119
assert.deepEqual(string.get.rgb('rgba(200 20 233 / 20%)'), [200, 20, 233, 0.2]);
120+
assert.deepEqual(string.get.rgb('rgba(200 20 233 20%)'), [200, 20, 233, 0.2]);
117121
assert.deepEqual(string.get.rgb('rgba(200, 20, 233, 0)'), [200, 20, 233, 0]);
118122
assert.deepEqual(string.get.rgb('rgba(200 20 233 / 0)'), [200, 20, 233, 0]);
123+
assert.deepEqual(string.get.rgb('rgba(200 20 233 0)'), [200, 20, 233, 0]);
119124
assert.deepEqual(string.get.rgb('rgba(200 20 233 / 0%)'), [200, 20, 233, 0]);
125+
assert.deepEqual(string.get.rgb('rgba(200 20 233 0%)'), [200, 20, 233, 0]);
120126
assert.deepEqual(string.get.rgb('rgba(100%, 30%, 90%, 0.2)'), [255, 77, 229, 0.2]);
121127
assert.deepEqual(string.get.rgb('rgba(100% 30% 90% / 0.2)'), [255, 77, 229, 0.2]);
128+
assert.deepEqual(string.get.rgb('rgba(100% 30% 90% 0.2)'), [255, 77, 229, 0.2]);
122129
assert.deepEqual(string.get.rgb('rgba(100% 30% 90% / 20%)'), [255, 77, 229, 0.2]);
130+
assert.deepEqual(string.get.rgb('rgba(100% 30% 90% 20%)'), [255, 77, 229, 0.2]);
123131
assert.deepEqual(string.get.hsl('hsla(200, 20%, 33%, 0.2)'), [200, 20, 33, 0.2]);
124132
assert.deepEqual(string.get.hsl('hsla(200, 20%, 33%, 1e-7)'), [200, 20, 33, 1e-7]);
125133
assert.deepEqual(string.get.hsl('hsl(200 20% 33% / 0.2)'), [200, 20, 33, 0.2]);

0 commit comments

Comments
 (0)