回答編集履歴

1

透明度に関して追加

2018/12/05 03:47

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -1,14 +1,18 @@
1
1
  カラーコードは`#12b`か`#12abef`のように基本的に3桁か6桁の16進数で出来ています。
2
+
3
+ ※最新のブラウザは4桁、8桁にも対応しており、透明度込みのカラーコードと判断します
4
+
5
+ [https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#rgba](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#rgba)
2
6
 
3
7
 
4
8
 
5
9
  なので`.`のようなワイルドカードで指定しまうのではなく、`[0-9a-fA-F]`のような16進数の数値として妥当な文字列だけ受け付けることで一歩前進します。
6
10
 
7
- また、`+`という風に無限長の文字列を受け付けるのではなく、`{3,6}`で指定すれば、
11
+ また、`+`という風に無限長の文字列を受け付けるのではなく、`{3,8}`で指定すれば、
8
12
 
9
13
  質問文のような回避策を使わなくてもある程度行けるんじゃないですかね?
10
14
 
11
- (4〜5桁も入って来てしまうのでもう少し改良したい所ではありますが)
15
+ (5,7のような不正なコード受理されるのでもう少し改良したい所ではありますが)
12
16
 
13
17
 
14
18