#을 기준으로 문자열을 쪼개는 정규표현식
'#밥 #고기 좋아요 #진짜로'.split(/#[^\s]+/g)
=> 결과 : ["", "", " 좋아요", ""]
#를 포함하여 문자열을 쪼개는 정규표현식
'#밥 #고기 좋아요 #진짜로'.split(/(#[^\s]+)/g)
=> 결과 : ["", "#밥", "", "#고기", " 좋아요", "#진짜로", ""]
파일구조
frontend
components/PostCard.js
const PostCard = ({ post }) => {
...
return (
...
<Card.Meta
avatar={<Avatar>{post.User.nickname[0]}</Avatar>}
title={post.User.nickname}
description={(
<div>{post.content.split(/(#[^\s]+)/g).map((v) => {
if (v.match(/#[^\s]+/)) {
return (
<Link href="/hashtag">{v}</Link>
);
}
return v;
})}
</div>)}
/>
포스트의 문자열을 해시태그(#)를 포함한 문자열을 기준으로 자르고 map 함수로 돌려 #문자열이면 Link 태그로 리턴하는 방식.