javascript - 如何在 ReactJS 中用另一个字符串和不同的颜色替换一个字符串?

标签 javascript css regex reactjs

我有一个从数组映射的字符串,我使用正则表达式返回特定文本。我希望这个特定的文本在呈现时具有不同的颜色。然而,当前的方法失败了,因为它不允许我只在纯 javascript 中设置字符串的样式。有没有办法解决这个问题,以便替换可以使用不同颜色的新文本。

理想情况下,最终结果应该是这样的

@user This is text

其中@user为蓝色,其余为黑色

{this.state.dataReplies.map((n, i) => {
            var re = /@(\S+)\b/g;
            let oldstr = n.description.match(re);
            console.log(oldstr);
            let newstr = oldstr.style.colour = "#0066ff";
            let str = n.description.replace(oldstr, newstr);
    return (
      <p>{str}</p>
    );
})}

最佳答案

感谢@Jayce444 提供的解决方案:

{this.state.dataReplies.map((n, i) => {
            var re = /@(\S+)\b/g;
            let oldstr = n.description.match(re);
            let str = n.description.replace(oldstr, "");
    return (
      <p> <span style={{color: "#0066ff"}}>{oldstr}</span> {str}</p>
    );
})}

关于javascript - 如何在 ReactJS 中用另一个字符串和不同的颜色替换一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59620707/

相关文章:

javascript - 单击按钮时使用 setTimeOut() 暂时停止一个函数执行

javascript - 在基于焦点的坐标系上绘制椭圆线?

css - 获取 ReactJS 元素的字体颜色

javascript - W3C规范中未包含使用特定于 vendor 的扩展的优缺点是什么?

html - 当出现 2 位数字时删除椭圆形边框半径

java - 模式编译抛出 java.util.regex.PatternSyntaxException

javascript - 连续循环滚动

javascript - 有什么办法可以采用前面的元素吗?

\b 和国际字符的 Javascript 正则表达式问题

r - 在 R 中,如何删除最后一个斜杠之前的所有内容