Skip to content
This repository was archived by the owner on Oct 20, 2021. It is now read-only.

Commit 77ff45a

Browse files
perf(hex-rgb-color): Use regexp
1 parent 4366a99 commit 77ff45a

2 files changed

Lines changed: 13 additions & 18 deletions

File tree

src/rules/hex-rgb-color.ts

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
1-
import { AbstractString } from './abstract-string';
2-
import { Xdigit } from './xdigit';
1+
import { AbstractRegex } from './abstract-regex';
32

4-
export class HexRgbColor extends AbstractString {
3+
export class HexRgbColor extends AbstractRegex {
54

65
/**
7-
* Validate string.
6+
* Get pattern.
87
*/
9-
public validateString(input: string): boolean {
10-
let inputString: string = input;
11-
12-
if (inputString.indexOf('#') === 0) {
13-
inputString = inputString.substr(1);
14-
}
15-
16-
if (inputString.length !== 3 && inputString.length !== 6) {
17-
return false;
18-
}
19-
20-
return new Xdigit().validate(inputString);
8+
protected getPattern(): string | RegExp {
9+
return /^#?([0-9A-F]{3}|[0-9A-F]{6})$/i;
2110
}
2211
}
2312

test/rules/hex-rgb-color.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ describe('HexRgbColor', () => {
2323
assert.isTrue(hexRgbColor.validate('#FFFFFF'));
2424
assert.isTrue(hexRgbColor.validate('123123'));
2525
assert.isTrue(hexRgbColor.validate('FFFFFF'));
26+
assert.isTrue(hexRgbColor.validate(443));
27+
assert.isTrue(hexRgbColor.validate(123));
2628
});
2729

2830
it('values is not valid', () => {
@@ -38,11 +40,15 @@ describe('HexRgbColor', () => {
3840
assert.isFalse(hexRgbColor.validate('#S'));
3941
assert.isFalse(hexRgbColor.validate('1234'));
4042
assert.isFalse(hexRgbColor.validate('foo'));
41-
assert.isFalse(hexRgbColor.validate(0x39F));
4243
assert.isFalse(hexRgbColor.validate(5));
4344
assert.isFalse(hexRgbColor.validate(1));
44-
assert.isFalse(hexRgbColor.validate(443));
4545
assert.isFalse(hexRgbColor.validate([]));
46+
assert.isFalse(hexRgbColor.validate({}));
47+
assert.isFalse(hexRgbColor.validate(new Array('foo')));
48+
assert.isFalse(hexRgbColor.validate(new Object({foo: 'bar'})));
49+
50+
class Foo {}
51+
assert.isFalse(hexRgbColor.validate(new Foo()));
4652
});
4753

4854
});

0 commit comments

Comments
 (0)