Zeilenumbrüche mittels Javascript umwandeln

Der folgende Javasript-Code orientiert sich an der nl2br-Funktion der php.js Seite. Ich habe die Funktion nl2html benannt, die noch flexibler verwendet werden kann. Da das Javascript String Objekt erweitert wird, läßt sich die Funktion ganz einfach verwenden:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script type="text/javascript">
   //<![CDATA[
   String.prototype.nl2html = function() {
      return (this + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ 
             ((typeof arguments[0] === 'undefined') ? '<br />' : arguments[0]) +'$2');
    };
  //]]>
  </script>
  <style type="text/css">
    br.foo {
      border:1px solid black;
    }
  </style>
</head>
<body>
 
<div id="test">
Das ist ein
Text mit Zeilenumbrüchen
...
</div>
<div id="test2"></div>
 
<script type="text/javascript">
  var el=document.getElementById('test');
  var val=el.innerHTML;
  document.getElementById('test').innerHTML=val.nl2html();
  document.getElementById('test2').innerHTML=val.nl2html('<hr />');
</script>
</body>
</html>

Kommentar verfassen