【发布时间】:2020-05-24 12:59:24
【问题描述】:
我无法解决一个问题。
有一个字符串,在某些地方有十六进制代码,代码可以很多。 我需要编写一个函数,该函数可以返回带有更改代码的字符串。 我想做什么:
function test(i,color){
let str = "Lorem ipsum #1385ff dolor sit amet, #1385ff consectetur adipisicing #1385ff elit. #333 Neque , est, voluptatum,#333";
str = str.replace(str.match(/#[0-9a-f]{6}|#[0-9a-f]{3}/gi)[i],color)
return str
}
console.log(test(2,"#000"))
我期望得到的:
Lorem ipsum #1385ff dolor sit amet, #1385ff consectetur adipisicing #000 elit. #1385ff Neque quibusdam, est, voluptatum,#333333 aperia
我得到了什么:
Lorem ipsum #000 dolor sit amet, #1385ff consectetur adipisicing #1385ff elit. #1385ff Neque , est, voluptatum,#333333
非常感谢您的帮助:)
【问题讨论】:
-
替换的规则是什么?
-
字符串中的十六进制码是按一定的顺序排列的,但它们可以有完全不同的值,也可以相同。该函数必须能够更改具有特定索引的十六进制代码,该索引通过参数传递。
-
你试过this吗?
标签: javascript regex