복붙노트

[JQUERY] BR에 jQuery를 변환 줄 바꿈 (nl2br에 해당)

JQUERY

BR에 jQuery를 변환 줄 바꿈 (nl2br에 해당)

해결법


  1. 1.

    function nl2br (str, is_xhtml) {   
        var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';    
        return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2');
    }
    

  2. 2.당신은 간단하게 할 수 있습니다 :

    당신은 간단하게 할 수 있습니다 :

    textAreaContent=textAreaContent.replace(/\n/g,"<br>");
    

  3. 3.렌더링을 변경하는 대신 내용을 변경의 정신에서 다음 CSS는로
    같은 각 줄 바꿈 동작합니다한다 :

    렌더링을 변경하는 대신 내용을 변경의 정신에서 다음 CSS는로
    같은 각 줄 바꿈 동작합니다한다 :

    white-space: pre;
    white-space: pre-line;
    

    이유는 두 가지 규칙 : 사전 온라인 만 (단서에 대한 @KevinPauli을 감사) 줄 바꿈에 영향을 미칩니다. IE6-7 및 기타 오래된 브라우저는 다시 또한 파라미터 nowrap을 포함하고 여러 공간을 표현하는 더 극단적 사전에 떨어진다. 이들에 대한 세부 사항 및 모질라에서 기타 설정 (사전 랩)과 CSS 트릭 (감사 @Sablefoste).

    나는 S.O. 일반적으로 싫어 해요 동안 씻지 사용자 입력 인젝션 공격에 취약성을 증가시킬 수로
    마크 업 바꿈 대체이 경우, 질문 제 추측보다는 답할 취향. 당신은 문자 그대로의 질문은 수행되어야 할 것이다 의미 당신이는 .text을 변경하는 자신을 발견 할 때마다 밝은 레드 라인 (), .html 파일 호출 ()를 교차하고 있습니다. (이 점을 강조 주셔서 감사합니다 @AlexS.) 당신은 시간에 보안 위험을 배제하더라도, 미래의 변화는 무의식적를 소개 할 수있다. 대신,이 CSS 당신이 안전한는 .text를 사용하여 마크 업없이 하드 줄 바꿈을 얻을 수 있습니다 ().


  4. 4.(일반 JS 함수 라이브러리 바람직) 코드에서이 넣어 :

    (일반 JS 함수 라이브러리 바람직) 코드에서이 넣어 :

    String.prototype.nl2br = function()
    {
        return this.replace(/\n/g, "<br />");
    }
    

    용법:

    var myString = "test\ntest2";
    
    myString.nl2br();
    

    문자열 프로토 타입 함수를 만드는 것은 당신이 어떤 문자열이를 사용할 수 있습니다.


  5. 5.해결책

    해결책

    이 코드를 사용

    jQuery.nl2br = function(varTest){
      return varTest.replace(/(\r\n|\n\r|\r|\n)/g, "<br>");
    };
    

  6. 6.이 자바 스크립트 함수 삽입 사용하거나 스왑을 처리하기 위해 대체할지 여부를 고려한다.

    이 자바 스크립트 함수 삽입 사용하거나 스왑을 처리하기 위해 대체할지 여부를 고려한다.

    (삽입 또는 HTML의 줄 바꿈을 대체)

    /**
     * This function is same as PHP's nl2br() with default parameters.
     *
     * @param {string} str Input text
     * @param {boolean} replaceMode Use replace instead of insert
     * @param {boolean} isXhtml Use XHTML 
     * @return {string} Filtered text
     */
    function nl2br (str, replaceMode, isXhtml) {
    
      var breakTag = (isXhtml) ? '<br />' : '<br>';
      var replaceStr = (replaceMode) ? '$1'+ breakTag : '$1'+ breakTag +'$2';
      return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, replaceStr);
    }
    

    하지만 오버 JS 휘티 d 차다


  7. 7.나는 이것에 대한 약간의 jQuery 확장을 쓴 :

    나는 이것에 대한 약간의 jQuery 확장을 쓴 :

    $.fn.nl2brText = function (sText) {
        var bReturnValue = 'undefined' == typeof sText;
        if(bReturnValue) {
            sText = $('<pre>').html(this.html().replace(/<br[^>]*>/i, '\n')).text();
        }
        var aElms = [];
        sText.split(/\r\n|\r|\n/).forEach(function(sSubstring) {
            if(aElms.length) {
                aElms.push(document.createElement('br'));
            }
            aElms.push(document.createTextNode(sSubstring));
        });
        var $aElms = $(aElms);
        if(bReturnValue) {
            return $aElms;
        }
        return this.empty().append($aElms);
    };
    

  8. 8.@Luca Filosofi의 허용 대답을 개선하기 위해,

    @Luca Filosofi의 허용 대답을 개선하기 위해,

    필요한 경우,이 정규 표현식의 시작 절을 변경하면 될 / ([^> [\ S]? \ R을 \ n]?) 것 같은 개행 대신 단지 태그, 태그 일부 공백 뒤에 오는 경우 ingore 바로 뒤에 개행


  9. 9.줄 바꿈을 지키는 DOM의 텍스트 영역에서 삽입 텍스트에 또 다른 방법은 노드와 그 하위의 렌더링 된 텍스트 내용을 나타내는 Node.innerText 속성을 사용하는 것입니다.

    줄 바꿈을 지키는 DOM의 텍스트 영역에서 삽입 텍스트에 또 다른 방법은 노드와 그 하위의 렌더링 된 텍스트 내용을 나타내는 Node.innerText 속성을 사용하는 것입니다.

    게터로서, 그들이 커서로 요소의 내용을 강조하고 클립 보드에 복사 한 경우 사용자가 얻을 것 텍스트를 가깝다.

    이 건물은 2016 년 표준이되었고, 현대적인 브라우저에서 지원됩니다. 수 있습니까 사용 : 나는이 대답을 게시 97 % 글로벌 범위.

  10. from https://stackoverflow.com/questions/2919337/jquery-convert-line-breaks-to-br-nl2br-equivalent by cc-by-sa and MIT license