참고: https://lemontia.tistory.com/1033
// string을 html로 변환해서 뿌려주는 함수
// 전역에서 사용하기 위해 export해놨는데 필요없으면 지우면 됨
export function makeInnerHtml(content) {
const htmlCode = content.split("\n").reduce((code, text) => {
text.indexOf("http") ? (code += MakeATag(text)) : (code += text);
return code;
}, ``);
return { __html: htmlCode };
}
// text내부에 http 링크가 있다면 a태그로 변경해주는 코드
export function MakeATag(content) {
const urlRegex = /(https?:\/\/[^\s]+)/g;
return content.replace(urlRegex, function (url) {
return '<a href="' + url + '" target="_blank" style="border-bottom: 1px solid blue;
color: blue;">클릭하면 이동합니다.</a>';
});
}
import {makeInnerHtml} "<<오른쪽 함수를 선언해놓은 파일 경로 적기";
// 예시 컴포넌트
function Example(){
const [data, setData] = useState(); // << DB든 어디서든 가져온 뿌려줄 data
return <div dangerouslySetInnerHTML={makeInnerHtml(data)}></div> ;
}
export default Example;