2

好的,所以我在不到十年前写了这个:

http://meyerweb.com/eric/tools/color-blend/

我很确定当时它工作得很好,但是从那时起(或者,谁知道,也许总是)一个错误已经潜入。我可以这样证明它:

  1. 留在'十六进制'。选择几种颜色。混合它们。
  2. 使用键盘编辑十六进制颜色(即,输入新的十六进制值,或更改那里的值)。再次混合。
  3. 到现在为止还挺好。
  4. 将模式切换为“RGB”。
  5. 编辑其中一个数字。
  6. 现在没有任何效果——没有混合,没有类型切换,什么都没有。

为什么?我什至无法弄清楚它失败的地方。

(是的,我知道 JS 非常笨拙,并且使用全局变量和各种 ick。我确实打算重写它。但首先我需要了解这里出了什么问题,如果可能的话,我应该如何诊断它我自己。请注意,我只是勉强了解如何以非常基本的方式使用 Firefox JS 调试器,而且可能不正确。)

4

1 回答 1

7

您需要在 colorParse() 中对正则表达式进行不区分大小写的开关。

你 .toUpperCase 颜色...所以 'rgb' 去 'RGB' 但是你的正则表达式试图替换它不能做的小写 'rgb'。

col = c.replace(/[#rgb(]*/i, '');

注意正则表达式中的 /i 使其不区分大小写。

于 2012-09-07T18:43:14.657 回答