Wie zu erkennen, dass der eingegebene text im text-Bereich ist RTL
Ich habe eine textarea, in dem der Benutzer die Eingabe von text in Englisch (oder jede andere von-Links-nach-rechts-Sprache) oder in einer Sprache, die RTL.
Wenn der Benutzer schreibt in RTL, muss der Benutzer drücken Sie die Rechts-Taste Umschalt - + Strg-Taste, um den text nach rechts ausgerichtet und rtl. Jedoch in windows (und wahrscheinlich auch anderen modernen Betriebssystemen) kann der Anwender eine beliebige Taste Kombination zu wechseln Sprache und text-Richtung.
Ich weiß, wie, um text anzuzeigen so wie RTL, aber wie kann ich wissen, in welche Richtung display?
Gibt es eine Möglichkeit zu erkennen, dass der eingegebene text in einem textarea - /text-Feld eingegeben wurde, da RTL?
- es gibt bestimmte Zeichen, die in unicode verwendet, um anzuzeigen, die text-Richtung in so genannte BiDi-Modus, aber ist es auch zutreffend in deinem Fall, weiß ich nicht.
- sind diese Zeichen enthalten, die in den tatsächlichen gespeicherter text in der textarea?
- Ich nehme an, dass in den meisten Fällen, UI zwingen Benutzer, um das englische alphabet verwenden, wenn nötig, und bieten bestimmte Felder im Formular für die Sprache spezifische Eingänge, so dass keine Erkennung code notwendig ist.
- Ich weiß nicht, wenn die Eingänge kümmern. Ich nehme an, Sie tun, wenn der input-Wert enthält eine Mischung aus text, aber ansonsten kann ich nicht sagen.
- Sie könnte wahrscheinlich Einrichtung eines event-handler auf text ändern in Ihrem textarea aussieht für diese Zeichen, und testen Sie es aus, wenn Sie eine Betriebssystem-Unterstützung von Unicode-BiDi.
- dies bedeutet, dass die textarea sollte in unicode und nicht in utf-8 richtig?
- utf-8 ist eine Instanz von unicode, also sollte es funktionieren.
- siehe Frage: stackoverflow.com/q/12006095/104380
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich eine weitere schöne und einfache Lösung. Fügen Sie einfach
dir="auto"
zu den Elementen und der browser wird es nicht sein job!Finden Sie unter: http://www.w3schools.com/tags/att_global_dir.asp
Versuchen Sie dies:
Habe ich eine vereinfachte RegExp zum erkennen von RTL
Obwohl es nicht fangen jeden RTL-Zeichen in der Unicode-Tabelle, es deckt vermutlich alle realen Fällen. Es enthält alle normalen hebräischen und arabischen Zeichen, einschließlich vowelization Zeichen.
Können Sie schreiben, eine kleine, schnelle JavaScript/jQuery-code mithilfe von regulären Ausdrücken. Reguläre Ausdrücke sind begrenzt in JavaScript, obwohl, so müssen Sie die XRegExp Bibliothek hat die volle Unicode-Unterstützung - wenn Sie fügen Sie die plugins. Dann können Sie die Zeichen zu sehen, was block von Unicodes Sie gehören mit Ausdrücken wie diese \p{Hebräisch}. http://www.regular-expressions.info/unicode.html
Konfrontiert mit dem gleichen dilemma schrieb ich mir selbst eine Funktion, die eine Schleife durch die Zeichen in jedem string und zählt die Anzahl der vorkommen von hebräischen Zeichen (meine Website ist zweisprachig Jiddisch/Englisch). Dann die Schnur erhält eine Punktzahl und eine 'rtl' - Klasse wird angewandt, um die Elemente mit einer hohen Punktzahl. Sie könnte leicht fügen Sie alle RTL-Sprachen in Unicode zur for-Schleife, um diese mehr Generika.
http://jsfiddle.net/Swyu4/9/
Bitte beachten Sie die Externen Ressourcen verknüpfen, um die XRegExp Bibliotheken in der jsfiddle.