16进制转rgb

276 阅读1分钟

16进制转rgb

**const getRgbColor = (params,opacity) => {

  if(params.startsWith('#') && (params.length === 4 || params.length === 7)){
       const _str = params.substring(1)
       const arr = new Array(_str.length).fill(1)
       const result= params.length === 4 ? arr.map((item,index)=>`${_str[index]}${_str[index]}`).join('') : _str
       let _strArr = []
       for(let i = 0; i < result.length; i+=2){
            _strArr.push(parseInt('0x'+result.substring(i,i+2))) 
       }
        let _opacity = opacity
        if(_opacity){
            _opacity = typeof _opacity === 'boolean' ? 1 : _opacity
            if(isNaN(_opacity) || (_opacity > 1)){
               _opacity = 1
            }else if(_opacity < 0) {
                _opacity = 0
            }
        }else{
            _opacity = 1
        }
       _strArr.push(_opacity)
       console.log('rgba('+_strArr.join(',')+')')
       return 'rgba('+_strArr.join(',')+')'
  }else{
      return params
  }

}**