与我之前的question相似 我有一个十六进制颜色的字符串,没有空格和命名颜色。
#f503e1Pink59bf22greeny-green#"f7b925"orange#fffwhite
如何在每个十六进制颜色上拆分字符串 - 拆分字符串并保留分隔符?
#f503e1Pink
59bf22greeny-green
#"f7b925"orange
#fffwhite
十六进制颜色可能前面有一个#,可能被引号括起来, <或em>三个或六个字符长。命名颜色可以是未确定长度的任意字符组合。
(#?\"?[a-fA-F0-9]{3,6}\"?)
答案 0 :(得分:1)
正如其他同事所提到的:对于您当前的输入,没有100%可行的解决方案可以涵盖所有可能的情况。
为了覆盖您的特定输入和输出,请考虑以下方法{{ 1}}功能:
String.match()
答案 1 :(得分:0)
这就是我所拥有的(而且它并不漂亮)
[HttpPost, ActionName("UpdateCostObjects")]
public HttpResponseMessage UpdateCostObjects([FromBody] object data)
{
var costObjects = JsonConvert.DeserializeObject<List<CostObjectM>>(data.Data);
if (ModelState.IsValid)
{
var updatedCostObjects = Acornpadomainservice.UpdateCostObjects(costObjects).ToList();
return Request.CreateResponse(updatedCostObjects);
}
else
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
}
答案 2 :(得分:0)
如果我心情不好,你需要做以下事情: 我认为一种颜色(不是六色)只包含字母。绿绿不是单一的颜色,是绿色和绿色。如果这条规则是eronate,请更换 [a-z] +从末尾开始[a-z - ] +或包含所需的任何其他角色。
var string = '#f503e1Pink59bf22greeny-green#"f7b925"orange#fffwhite',
matches= string .match(/(#?\"?[a-f0-9]{6}\"?|#?\"?[a-f0-9]{3}\"?|[a-z]+)/gi);
console.log(matches);
&#13;