[英]How to parse hashtags and mentions of a string with custom components
我有兩個叫Hashtag和Mention的React組件,它們基本上是指向Hashtag或用戶個人資料的鏈接。 我想解析一個字符串,將#hashtag替換為<Hashtag>hashtag</Hashtag>
,將@user替換為<Mention>user</Mention>
。 我懷疑也許我可以將字符串轉換為子字符串和組件的數組,然后映射並解析它,但是我認為它會變得很臟,我想必須對此有更好的解決方案。
我會嘗試其中提到的兩種方法中的一些。 我將復制並粘貼它們。
const escapeRE = new RegExp(/([.*+?^=!:$(){}|[\]\/\\])/g)
const safeRE = (string) => {
return string.replace(escapeRE, "\\$1")
}
class Hightlight extends Component {
static propTypes = {
match : PropTypes.string,
string : PropTypes.string,
}
render() {
return (
<span
dangerouslySetInnerHTML={{
__html : string.replace(safeRE(this.props.match), "<strong className\"match\">$1</strong>")
}} />
)
}
}
var parts = "I am a cow; cows say moo. MOOOOO.".split(/(\bmoo+\b)/gi);
for (var i = 1; i < parts.length; i += 2) {
parts[i] = <span className="match" key={i}>{parts[i]}</span>;
}
return <div>{parts}</div>;
最容易應用的是最新的,但不如前者安全
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.