19.12.24 해시태그를 링크로 만들기

sykim·2019년 12월 24일
0

#을 기준으로 문자열을 쪼개는 정규표현식

'#밥 #고기 좋아요 #진짜로'.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 태그로 리턴하는 방식.

profile
블로그 이전했습니다

0개의 댓글