Javascript 在react中对字符串应用span将返回[object object],而不是给我带span的文本

Javascript 在react中对字符串应用span将返回[object object],而不是给我带span的文本,javascript,reactjs,Javascript,Reactjs,我试图在句子中的某些词上使用span return "hello how are you hello".replace(/hello|you/gi, <span className="some-class">"new"</span>); 返回“你好吗你好”。替换(/hello | you/gi,“new”); 在我看来,我看到的是[object object]而不是(span)new(span)怎么是(span)new(span)(span)new(span) 我也尝

我试图在句子中的某些词上使用span

return "hello how are you hello".replace(/hello|you/gi, <span className="some-class">"new"</span>);
返回“你好吗你好”。替换(/hello | you/gi,“new”);
在我看来,我看到的是[object object]而不是(span)new(span)怎么是(span)new(span)(span)new(span)


我也尝试过使用危险的Html,但没有成功。我仍然得到[object object]

字符串。prototype.replace
返回一个字符串,因此它将
React.createElement
调用转换为字符串
[object object]

相反,您可能希望将句子拆分为单词,映射到单词上,如果与正则表达式匹配,则返回jsx,否则返回字符串

var stringArray = "hello how are you hello".split(" ")
var regex = /hello|you/i
var elements = stringArray.map(string =>
  regex.test(string) ? <span>{ string }</span> : string
)

render() {
  return <div>{ elements }</div>
}
var stringArray=“你好你好”。拆分(“”)
var regex=/hello | you/i
var elements=stringArray.map(字符串=>
regex.test(string)?{string}:string
)
render(){
返回{elements}
}

replace函数中
中缺少的引号围绕着
,但是由于React在JS中直接支持HTML,您可能应该发布生成视图的整个函数。你很可能想要那些缺少的引号,以返回字符串,其他任何东西都没有意义。要添加到adeneo的注释中:我通过在
replace
函数中的
标记中添加引号,并使用
dangerouslysetinerhtml
来实现它。我没有将句子拆分为单词的唯一原因是,有时候我的正则表达式是一个短语,而不一定是一个单词。啊,是的,一般的想法仍然适用。您可以先用正则表达式将字符串解析成块,甚至可以有一个
{string:'',matches:true}