Skeeve: Ein Wort in RegExp ausschließen?

Beitrag lesen

Moin!

Ein netter user hat sich letztens schon die mühe gemacht

;-) Danke.

Mit Regular Expressions wirst Du hier aber nicht weiter kommen. Dir wird wohl nix übrig bleiben, als selbst zu parsen:

  
<html>  
<head>  
<script language="JavaScript" type="text/JavaScript" >  

  
 var token, pos;  
 function bbcode() {  
  token= document.mainform.eingabe.value.match( /(<[^>]+>|[^<]+)/g );  
  pos= 0;  
  document.mainform.ausgabe.value= convert_to_bbcode();  
 }  
 function convert_to_bbcode( end_tag ) {  
  var result= '';  
  while ( pos < token.length ) {  
   var t= token[ pos++ ];  
   if ( t.charAt(0) == '<' ) {  
    var tagname= t.replace( /^<([^\s>]+).*/ , '$1' );  
    if ( tagname == end_tag ) return result;  
    switch (tagname) {  
    case 'div':  
     var align= t.replace( /^.*\balign="([^"]+)".*/, '$1' );  
     result+= '[' + align.toUpperCase() + ']' + convert_to_bbcode( '/div' ) + '[/' + align.toUpperCase() + ']';  
     break;  
    case 'b':  
     result+= '[b]' + convert_to_bbcode('/b') + '[/b]';  
     break;  
    default:  
     result+= ' ?? ' + t + ' ?? ';  
     break;  
    }  
   }  
   else {  
    result+= t;  
   }  
  }  
  return result;  
 }  

  
</script>  
</head>  
<body>  
<form method="post" name="mainform" action="http://www.google.de/" onsubmit="return false;">  
 <textarea id="eingabe"          cols="75" rows="10">  
  <b>  
   bold  
   <div align="left">  
    left  
    <div align="right">  
     right  
     <div align="center">  
      center  
     </div>  
    </div>  
   </div>  
  </b>  
 </textarea>  
 <button onclick="bbcode()">mach</button>  
 <textarea id="ausgabe" readonly cols="75" rows="10"></textarea>  
</form>  
<div id="blinddiv"></div>  
</body>  
</html>  

... nur mal so ins Unreine fantasiert...
-- Skeeve