riku
2024-02-04 b6ce6a9739d7114ee740981cbbeabbf1e7e10f28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var ColorExchange = {
    reg() {
        return /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
    },
 
    regTwo() {
        return /^0x([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
    },
    // rgb转换为 #?????? 的16进制,或补全#fff为#ffffff
    rgbToHexadecimalNormal(value) {
        // 如果是rgb颜色表示
        if (/^(rgb|RGB)/.test(value)) {
            let aColor = value.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
            let strHex = '#'
            for (let i = 0; i < aColor.length; i++) {
                let hex = Number(aColor[i]).toString(16)
                if (hex === '0') {
                    hex += hex
                }
                strHex += hex
            }
            if (strHex.length !== 7) {
                strHex = value
            }
            return strHex
        } else if (this.reg.test(value)) {
            let aNum = value.replace(/#/, '').split('')
            if (aNum.length === 6) {
                return value
            } else if (aNum.length === 3) {
                let numHex = '#'
                for (let i = 0; i < aNum.length; i += 1) {
                    numHex += aNum[i] + aNum[i]
                }
                return numHex
            }
        }
        return value
    },
}