Javascript 替换<;br>;带换行符的字符串中的标记
我正在使用react并从保存注释的api中提取。有多个带有Javascript 替换<;br>;带换行符的字符串中的标记,javascript,reactjs,replace,line-breaks,Javascript,Reactjs,Replace,Line Breaks,我正在使用react并从保存注释的api中提取。有多个带有br标记的注释,因为api来自php用户。我试图用实际的换行符替换每个字符串中的br标记。我也在使用react,所以jQuery是不可能的 这就是我所拥有的: this.state.notes.forEach((note) => { const fixed = note.body.replace(/<br>/g, "\r\n"); rows.push(<ListGroupItem hover href="#
br
标记的注释,因为api来自php用户。我试图用实际的换行符替换每个字符串中的br
标记。我也在使用react,所以jQuery是不可能的
这就是我所拥有的:
this.state.notes.forEach((note) => {
const fixed = note.body.replace(/<br>/g, "\r\n");
rows.push(<ListGroupItem hover href="#" className="whiter" key=
{note.id}>
<div className="d-flex justify-content-between">
<h5 className="mb-1">{ note.name }</h5>
<small>{ commentDate }</small>
</div>
<p className="mb-1">{ fixed }</p>
</ListGroupItem>)
}
this.state.notes.forEach((note)=>{
const fixed=note.body.replace(/
/g,“\r\n”);
推(
{note.name}
{commentDate}
{fixed}
)
}
我已经用空格替换了它,它起作用了,但换行符不起作用。我哪里出了问题
编辑1:@T.J.Crowder我添加了它在页面上的显示方式。
行
是一个空数组,ListGroupItem
来自MDBootstrap。替换
的方式很好,除了您可能希望在关闭
之前留有空格,并且在//code>ode>>
以及:
const fixed = note.body.replace(/<br\s*\\?>/g, "\r\n");
例如:
const示例=({fixed})=>{
return{
修复了.split(/[\r\n]+/).map(line=>{line})
}
;
};
康斯特街=
“这是一个带换行符的字符串。\r\n”+
“第2行\r\n”+
“第3行”;
ReactDOM.render(
,
document.getElementById(“根”)
);
“我已经用空格替换了它,但它在换行时不起作用。”一旦修改了字符串,您将如何呈现它?您可以尝试使用此文本。拆分()。加入(“\n”)从根本上说,如果你想要评论的文本而不是HTML,你需要让另一端向你发送文本而不是HTML。通过向你发送HTML,他们给了你大量的工作要做。你不想仅仅用换行符替换
,因为显然你收到的是ing是HTML,因此可能需要处理HTML的其他方面,例如命名字符实体(
,&;
,等等)或数字字符实体(例如&003c;
)。你必须担心XSS和其他各种问题。@HemadriDasari-OP已经有了有效的代码,用换行符替换了
。以不同的方式指出它们是没有用的。:-)我很确定它不是发送HTML,而是发送字符串。字符串包含br
标记,这些标记最终显示在字符串中。我只想从字符串中删除标记并使它们实际换行,因为它们之间只用空格分隔看起来不太好。我知道这是如何工作的,但当我.replace(//g,“\r\n”)
时,文本中不会显示“\r\n
”。它显示文本,就像我用空格替换它一样。编辑:别介意我在分割后没有调用它,所以它仍然显示原始的固定变量。谢谢你的帮助!
<p className="mb-1">{
fixed.split(/[\r\n]+/).map(line => <div>{line}</div>)
}</p>