스마트 에디터로 작성할 때 둥근 따옴표 사용

스마트 에디터로 작성할 때 둥근 따옴표 사용

QA

스마트 에디터로 작성할 때 둥근 따옴표 사용

본문

텍스트 에어리어 내에서 작성하는 경우에는 

 


    function replaceText() {
      var replacedText = content.value;
     
      var replacementRules = [
        { find: /\?“/g, replace: "?”" },
        { find: /\!“/g, replace: "!”" },
        { find: /\.“/g, replace: ".”" },
        { find: /\?‘/g, replace: "?’" },
        { find: /\!‘/g, replace: "!’" },
        { find: /\.‘/g, replace: ".’" },
        { find: /\`/g, replace: "…" },
      ];

 
      var selectionStart = content.selectionStart; // 현재 포인터의 위치 저장
      var selectionEnd = content.selectionEnd;
 
      replacementRules.forEach(function (rule) {
        replacedText = replacedText.replace(rule.find, rule.replace);
      });

 
      content.value = replacedText;
      content.setSelectionRange(selectionStart, selectionEnd); // 포인터 위치 복원
      }
 
     
    document.getElementById("content").addEventListener("input", function () {
      replaceQuotes();
      replaceText();
    });

 

위와 같은 코드를 사용해서 곧은 따옴표를 둥근 따옴표로 바꿔서 사용할 수 있더라고요. 

 

스마트 에디터2를 사용하는 게시판에서 작성하는 글은 모두 따옴표가 곧은 따옴표로 나오는데 

어떻게 하면 여기에 작성 되는 따옴표를 둥근 따옴표로 바꿀 수 있을까요? ㅠㅠ

 

 

이 질문에 댓글 쓰기 :

답변 2

듕근따옴표? 그게 뭔가요..

자문자답 같아서 부끄럽네요

생각해보니 꼭 에디터에서 둥근 따옴표가 적용되어야 할 필요는 없겠더라고요.

그래서 작성 후 뷰페이지에서 볼 때 텍스트를 대치하는 것으로 문제를 해결하기로 했습니다.

 


document.addEventListener("DOMContentLoaded", function() {
    var contentDiv = document.getElementById('bo_v_con');
    if (contentDiv) {
        var content = contentDiv.innerHTML;
        // "와 '를 각각 “와 ‘로 대체
        var replacedText = content.replace(/"/g, '“').replace(/'/g, '‘');
        // 대체 규칙 배열
        var replacementRules = [
            { find: /\?“/g, replace: "?”" },
            { find: /\!“/g, replace: "!”" },
            { find: /\.“/g, replace: ".”" },
            { find: /\?‘/g, replace: "?’" },
            { find: /\!‘/g, replace: "!’" },
            { find: /\.‘/g, replace: ".’" },
            { find: /\`/g, replace: "…" }
        ];
        // 각 규칙에 대해 텍스트 대체
        replacementRules.forEach(function(rule) {
            replacedText = replacedText.replace(rule.find, rule.replace);
        });
        // 대체된 텍스트를 적용
        contentDiv.innerHTML = replacedText;
    }
});
 
 

답변을 작성하시기 전에 로그인 해주세요.
전체 59,611
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT