0

尝试将 RGBA 转换为 HEX,丢弃透明度。将 RGB 转换为 HEX 的方法有很多,似乎从 RGBA 中获取 HEX 的最简单方法是简单地丢弃 alpha 的内容。

希望转这个:

rgba(255,255,255,0.95)

进入这个:

rgb(255,255,255)

然后使用这个: http ://haacked.com/archive/2009/12/29/convert-rgb-to-hex.aspx

要得到#FFFFFF

也可以直接转换,这似乎只是一个简单的子字符串操作,目前我还没有意识到。

4

1 回答 1

2

也许您正在寻找这个:

input.replace(/rgba\((\d+,\d+,\d+),[\d.]+\)/,"rgb($1)")

正则表达式的解释:

  • /- 正则表达式的开始
  • rgba\(- 字面意思rgba(
  • (- 捕获组的开始
  • \d+,\d+,\d+- 三组数字,以逗号分隔
  • )- 捕获组结束
  • ,[\d.]+\)- 一个逗号、一组数字和小数点以及一个右括号
  • /- 正则表达式结束

替换为:literal rgb(,捕获的字符串,literal)

为了使这个正则表达式更普遍适用,在规范允许的地方允许空格:

input.replace(/rgba\((\s*\d+\s*,\s*\d+\s*,\s*\d+\s*),\s*[\d.]+\s*\)/,"rgb($1)")
于 2013-02-16T07:11:35.960 回答