it-source

javascript에서는 nl2br()에 상당합니다.

criticalcode 2022. 10. 20. 21:17
반응형

javascript에서는 nl2br()에 상당합니다.

중복 가능성:
jQuery 회선 구분을 br로 변환(nl2br 상당)

현재 추가 중<BR>각각에 대해서evt.which == 13.가 있나요?nl2br()JavaScript의 경우 이 기능을 사용할 수 없습니다.evt.which == 13?

이것은 php.js와 어떻게 다른가요?

$('#TextArea').keypress(function(evt) {

    if (evt.which == 13) {

        var range           = $('#TextArea').getSelection();
        var image_selection = range.text;

        $('#TextArea').replaceSelection('<BR>');
        $('#TextArea1').html($('#TextArea').val());
    }
});

찾고 있는 것처럼 보이는 php.js의 nl2br을 보세요.기본적으로 다음과 같습니다.

function nl2br (str, is_xhtml) {
    if (typeof str === 'undefined' || str === null) {
        return '';
    }
    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');
}

편집:
사용 예nl2br()다음과 같이 변경할 수 있습니다.

$('#TextArea').keypress(function(evt){
        $('#TextArea1').html(nl2br($('#TextArea').val()));
    });

(이것이 갱신되는 것에 주의해 주세요.#TextArea1키를 누를 때마다 값을 변경하지 않습니다.#TextArea당신이 찾고 있는 게 맞지만, 제가 오해하고 있는 것 같아)

편집 2:
이전 기능의 동작을 얻고 싶은 경우(삽입 포함)<br/>~에 대해서#TextArea)의 조작은 다음과 같습니다.

$('#TextArea').keypress(function(evt){
        $('#TextArea').html(nl2br($('#TextArea').val())); // replace linebreaks first
        $('#TextArea1').html($('#TextArea').val()); // copy to #TextArea1
    });

다음은 php.js의 함수 nl2br입니다.

function nl2br (str, is_xhtml) {
  // http://kevin.vanzonneveld.net
  // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   improved by: Philip Peterson
  // +   improved by: Onno Marsman
  // +   improved by: Atli Þór
  // +   bugfixed by: Onno Marsman
  // +      input by: Brett Zamir (http://brett-zamir.me)
  // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  // +   improved by: Brett Zamir (http://brett-zamir.me)
  // +   improved by: Maximusya
  // *     example 1: nl2br('Kevin\nvan\nZonneveld');
  // *     returns 1: 'Kevin<br />\nvan<br />\nZonneveld'
  // *     example 2: nl2br("\nOne\nTwo\n\nThree\n", false);
  // *     returns 2: '<br>\nOne<br>\nTwo<br>\n<br>\nThree<br>\n'
  // *     example 3: nl2br("\nOne\nTwo\n\nThree\n", true);
  // *     returns 3: '<br />\nOne<br />\nTwo<br />\n<br />\nThree<br />\n'
  var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br ' + '/>' : '<br>'; // Adjust comment to avoid issue on phpjs.org display

  return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}

언급URL : https://stackoverflow.com/questions/7467840/nl2br-equivalent-in-javascript

반응형