【问题标题】:Split this String into array using js [closed]使用js将此字符串拆分为数组[关闭]
【发布时间】:2017-05-20 19:48:23
【问题描述】:

我有以下字符串linear-gradient(124deg, rgb(255, 36, 0), rgb(232, 29, 29), rgb(232, 183, 29), rgb(227, 232, 29), rgb(29, 232, 64), rgb(29, 221, 232), rgb(43, 29, 232), rgb(221, 0, 243), rgb(221, 0, 243))

我想像这样拆分成数组

[
    "rgb(255, 36, 0)",
    "rgb(232, 29, 29)",
    "rgb(232, 183, 29)",
    "rgb(227, 232, 29)",
    "rgb(29, 232, 64)",
    "rgb(29, 221, 232)",
    "rgb(43, 29, 232)",
    "rgb(221, 0, 243)",
    "rgb(221, 0, 243)"
]

有人可以帮助如何使用 js/jquery reguar 表达式来做到这一点 谢谢。

【问题讨论】:

  • 请添加您尝试过的内容以及遇到问题的地方。
  • 问题在哪里?
  • 其实我不擅长正则表达式,我不知道该怎么做。
  • 你应该展示你尝试过的东西,以便人们可以帮助你解决它。

标签: javascript jquery regex


【解决方案1】:

您可以为此使用正则表达式。

var gradient = 'linear-gradient(124deg, rgb(255, 36, 0), rgb(232, 29, 29), rgb(232, 183, 29), rgb(227, 232, 29), rgb(29, 232, 64), rgb(29, 221, 232), rgb(43, 29, 232), rgb(221, 0, 243), rgb(221, 0, 243))';
var rgbRegex = /rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)/g;
var colors = gradient.match(rgbRegex);
console.log(colors);

【讨论】:

  • 但是最后的 g 代表什么?谢谢
  • Global。这用于查找字符串中的所有匹配项,而不仅仅是第一个。
【解决方案2】:

试试这个

function parse(text) {
  return text.match(/rgb\(.+?\)/g);
}

console.log(parse('linear-gradient(124deg, rgb(255, 36, 0), rgb(232, 29, 29), rgb(232, 183, 29), rgb(227, 232, 29), rgb(29, 232, 64), rgb(29, 221, 232), rgb(43, 29, 232), rgb(221, 0, 243), rgb(221, 0, 243))'));

【讨论】:

  • 只是一个提示:rgb\([^\)]+\) 会更快
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
相关资源
最近更新 更多