Javascript JS:在角色第n次交互后移除所有内容

Javascript JS:在角色第n次交互后移除所有内容,javascript,Javascript,正在尝试将RGBA转换为十六进制,放弃透明度。有许多方法可以将RGB转换为十六进制,而从RGBA中获取十六进制的最简单方法似乎就是简单地丢弃alpha的内容 希望扭转这种局面: rgba(255255,0.95) 为此: rgb(255255) 然后用这个: 获取#FFFFFF 也可以直接转换,这看起来像是一个简单的子字符串操作,目前我无法理解。也许您正在寻找这个: input.replace(/rgba\((\d+,\d+,\d+),[\d.]+\)/,"rgb($1)") 正则表达式的解

正在尝试将RGBA转换为十六进制,放弃透明度。有许多方法可以将RGB转换为十六进制,而从RGBA中获取十六进制的最简单方法似乎就是简单地丢弃alpha的内容

希望扭转这种局面:

rgba(255255,0.95)

为此:

rgb(255255)

然后用这个:

获取
#FFFFFF


也可以直接转换,这看起来像是一个简单的子字符串操作,目前我无法理解。

也许您正在寻找这个:

input.replace(/rgba\((\d+,\d+,\d+),[\d.]+\)/,"rgb($1)")
正则表达式的解释:

  • /
    -正则表达式的开始
  • rgba\(
    -literal
    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)")

我只是动态地和使用“rgba(255255255,0.95)”尝试了一下,但没有成功。我知道你要去哪里,但我觉得那里有个打字错误。明白了,很有魅力。谢谢简!你回答了我很多深夜的问题:)