normalize-color accepts functional colors with surrounding junk
未关闭
还没有人认领这个 Issue。
Needs: Attention
Needs: Repro
- 主要语言
- C++
- 星标
- 127k
- 派生
- 25.3k
- 平均合并
- 1 天 23 小时
- 30 天内合并 PR
- 4
描述
Description
@react-native/normalize-colors fully anchors hex matchers (^…$) but not rgb/rgba/hsl/hsla/hwb. Substring matches are therefore accepted:
normalizeColor('xxrgb(1, 2, 3)yy') // => 0x010203ff (unexpected)
normalizeColor('rgba(1,2,3,0.5)extra') // => non-null (unexpected)
normalizeColor(' #fff ') // => null (hex correctly rejects)
Steps to reproduce
- Open the Snack: https://snack.expo.dev/rykV9Sq-NOSJg8KWXawiP
- Look at rows for
xxrgb(1, 2, 3)yy,rgb(1, 2, 3)yy, andrgba(1,2,3,0.5)extra - Observe non-null
processColorvalues and painted swatches (bug). Spaced hex#fffcorrectly stays null.
React Native Version
main / latest (package @react-native/normalize-colors, used by processColor)
Affected Platforms
- Runtime - Android
- Runtime - iOS
- Runtime - Web
- Other (please specify): pure JS
@react-native/normalize-colors
Output of npx @react-native-community/cli info
N/A — reproducible via Snack / unit package without a local app install.
Stacktrace or Logs
N/A (incorrect non-null return value, no crash)
MANDATORY Reproducer
https://snack.expo.dev/rykV9Sq-NOSJg8KWXawiP
Screenshots and Videos
N/A
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 @react-native/normalize-colors 中的函数式颜色匹配器开始,并使用链接的 Snack 重现列出的 rgb、rgba 和 spaced-hex 用例。当带有周围无关内容的输入返回 null,而有效的函数式颜色仍继续产生非 null 值时,即表示完成;该 issue 还链接了修复 PR #58496。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- javascript, react-native
- 领域
- mobile
- Issue 类型
- 缺陷
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 25/100