I came across this situation, so I wrote a small jQuery plugin for this:
$.fn.checkDirection = function() { var dir = checkRTL(this.val()[0]) ? 'RTL' : 'LTR'; this.css("direction", dir); function checkRTL(s) { var ltrChars = 'A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF' + '\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF', rtlChars = '\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC', rtlDirCheck = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']'); return rtlDirCheck.test(s); } };
Basically, as soon as the user starts typing, he will check the language direction and adjust the direction of the selection accordingly. Usage will be as follows:
$('textarea').on('input', function(){ $(this).checkDirection(); });
source share