2012-03-28 25 views
0

Was ich tun möchte, ist, dass, wenn Word das Ende der Zeile Rich Wort teilt in zwei Wörter und Bindestrich vor Zeilenumbruch einfügen. Es ist ähnlich wie <wbr> Tag, aber es fügt nichts ein.
Beispiele:Wie Einfügen Bindestrich zwischen Buchstaben anstelle von Zeilenumbruch?

Java- <--- I want to insert this hyphen before line-break 
Script 

oder

Ja- <---- Same here 
vaScript 

Gibt es trotzdem, es zu tun? Es macht mir nichts aus php, javaScript aber jQuery wäre vorzuziehen und wenn ich es erreichen kann mit CSS oder HTML das wäre toll. Thnx im Voraus!

+1

Haben Sie die Bindestriche wollen, um automatisch zu bewegen, wenn der Benutzer den Browser passt die Größe? (Auch Silbentrennung gemäß Ihrem zweiten Beispiel macht schwer lesbare Kopie - warum möchten Sie das tun?) – nnnnnn

+0

Ich denke, es wäre sehr schwierig, dies mit Javascript als einen allgemeinen Fall zu tun, Hinzufügen von Bindestrichen kann die ändern Layout und möglicherweise bereits eingefügte Bindestriche an die falsche Stelle verschieben. Eingefügte Bindestriche müssen identifiziert werden können (um eine erneute Silbentrennung bei der Fenstergrößenänderung oder andere Layoutänderungen zu ermöglichen), so dass sie sich möglicherweise in einem SPAN-Element mit einer geeigneten Klasse (z. B. insertHyphen) befinden sollten. Wie in einer Antwort erwähnt, benötigen Sie einen [Satz von Silbentrennungsregeln] (http://en.wikipedia.org/wiki/Hyphen), Sie können nicht einfach Zeichen hinzufügen, bis die Zeile fast voll ist, einen Bindestrich einfügen und fortfahren . – RobG

+0

Kann der weiche Bindestrich '­' Ihnen helfen? – inhan

Antwort

1

Wenn Sie es clientseitig machen wollen, benötigen Sie ein Silbentrennungs-Plugin. Grund dafür ist, dass es ein Wörterbuch der Silbentrennung-Regeln geben muss, und das ist etwas, das nicht einfach im Browser enthalten ist. [update: obwohl diese Aussage schon teilweise falsch ist! Chris 'Link zeigt begrenzte (sehr begrenzte, aber immer noch ... viel versprechende!) Unterstützung.]

Hier ist ein jQuery-Plugin, das ich gefunden habe: http://archive.plugins.jquery.com/plugin-tags/hyphenation und ich weiß, dass ich schon einmal in einem Projekt verwendet habe (vielleicht sogar dieses gewesen)). Es fügt natürlich den Bindestrich in den Inhalt des Knotens ein, aber der Inhalt muss ihn nicht enthalten, die Silbentrennung wird von der Funktion nach DOM ready berechnet.

Ob die Regeln umfangreich genug sind, um Wörter außerhalb der "Norm" aufzulösen, ist eine andere Frage.

Randnotiz: JavaScript ist ein Eigenname, das von der Silbentrennung ausgeschlossen werden sollte. Ich stelle mir vor, dass das nur ein Beispiel von oben war. ;-)

+0

ye, 'JavaScript' war von meinem Kopf! Ich habe total vergessen, dass jQuery Plugin fast alles was du willst. Thnx für Plugin! – FoxKllD

0

Diese Funktion sollte Ihr Problem lösen.
Es einfügen Soft Bindestrich | $ schüchtern; in "lang" Worte.


  • pText = Ihre Zeichenfolge
  • pMax = Jeder X Char in einem Wort ein Soft-Hyphen einfügen;

function hyphen(pText, pMax){ 
     var t = pText.split(" "); 
     for(i=0; i<t.length; i++){ 
       if(t[i].length<pMax){ 
         var w = t[i] 
         var re = new RegExp("(.{"+pMax+"})","g"); 
         if(w.length<pMax+3){ 
           var pos = t[i].length - 3; 
           re = new RegExp("(.{"+ pos +"})","g"); 
         } 
         t[i] = w.replace(re,"$1"+&shy;); 
       } 
     } 
     return t.join(" "); 
} 
Verwandte Themen