【问题标题】:Javascript match doesn't work in IEJavascript 匹配在 IE 中不起作用
【发布时间】:2010-01-04 03:14:18
【问题描述】:

我有以下代码。

function rgb2hex(rgb) {
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}

在 FF 和 Chrome 中似乎可以正常工作。 IE 提出 '1' 为空或不是对象。 rgb 值似乎确实符合 rgb.match。

有什么想法吗?

谢谢

【问题讨论】:

  • 你传递给这个函数的值看起来像 "rgb(12, 34, 56)" ?
  • 我正在传递 RGB 颜色并尝试将其转换为十六进制

标签: javascript internet-explorer preg-match


【解决方案1】:

在运行正则表达式之前尝试打印出 rgb 是什么。可能是输入不同。

我假设您正在检查 dom_element.style 属性。也许 IE 从一开始就不会将该属性转换为 rgb(r, g, b) 格式。

【讨论】:

  • 我在比赛前添加了一个 alert() 并且它确实有一个十六进制颜色值,所以看起来没问题。
  • 是的,你是对的,它已经被转换,而 FF 和 Chorme 没有。谢谢
猜你喜欢
  • 1970-01-01
  • 2017-11-16
  • 2012-01-20
  • 2016-01-21
  • 2015-06-17
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多