Skip to content

Commit 32f3e00

Browse files
committed
fix incorrect handling of optional comma in rgb() regex (fixes #65)
1 parent 0766ca7 commit 32f3e00

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ cs.get.rgb = function (string) {
5050

5151
var abbr = /^#([a-f0-9]{3,4})$/i;
5252
var hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;
53-
var rgba = /^rgba?\(\s*([+-]?\d+)\s*,?\s*([+-]?\d+)\s*,?\s*([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
53+
var rgba = /^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
5454
var per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/;
5555
var keyword = /^(\w+)$/;
5656

test/basic.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,16 @@ assert.strictEqual(string.get('#f'), null);
5353
assert.strictEqual(string.get('#4f'), null);
5454
assert.strictEqual(string.get('#45ab4'), null);
5555
assert.strictEqual(string.get('#45ab45e'), null);
56+
assert.strictEqual(string.get('rgb()'), null);
57+
assert.strictEqual(string.get('rgb(10)'), null);
58+
assert.strictEqual(string.get('rgb(10, 2)'), null);
59+
assert.strictEqual(string.get('rgb(10, 2, 2348723dskjfs)'), null);
60+
assert.strictEqual(string.get('rgb(10%)'), null);
61+
assert.strictEqual(string.get('rgb(10%, 2%)'), null);
62+
assert.strictEqual(string.get('rgb(10%, 2%, 2348723%dskjfs)'), null);
63+
assert.strictEqual(string.get('rgb(10%, 2%, 2348723dskjfs%)'), null);
64+
assert.strictEqual(string.get('rgb(10$,3)'), null);
65+
assert.strictEqual(string.get('rgba(10, 3)'), null);
5666

5767
// with sign
5868
assert.deepEqual(string.get.rgb('rgb(-244, +233, -100)'), [0, 233, 0, 1]);

0 commit comments

Comments
 (0)