如何根据输入文本语言自动设置文本方向?

Mos*_*rdy 8 javascript html5 bidi css3

在谷歌,加上(和很多其他地方),我想发布的东西,当我在波斯键入它,这是一个从右到左的语言,文字方向自动设置为RTLtext-alignment:right,当我开始输入英文,它会自动更改为ltrtext-alignment:left.我怎么能有这样的功能?这有什么用HTML5或Javascript?我应该遵循哪些线索?

提前致谢

ami*_*sim 15

添加dir=auto到您的输入元素:

在表单和插入的文本上使用 dir="auto" 以自动检测运行时提供的内容的方向。

https://www.w3.org/International/questions/qa-html-dir#quickanswer


rea*_*arm 11

我有时会遇到dir=auto无法工作的问题。

挖掘 CSS 后我发现

#container > * {
    text-align: start;
    unicode-bidi: plaintext;
}
Run Code Online (Sandbox Code Playgroud)

更加灵活通用


小智 6

我写了一个JQuery代码来做到这一点.只需将类"checkRTL"添加到要设置其方向的元素即可.

var rtlChar = /[\u0590-\u083F]|[\u08A0-\u08FF]|[\uFB1D-\uFDFF]|[\uFE70-\uFEFF]/mg;
$(document).ready(function(){
    $('.checkRTL').keyup(function(){
        var isRTL = this.value.match(rtlChar);
        if(isRTL !== null) {
            this.style.direction = 'rtl';
         }
         else {
            this.style.direction = 'ltr';
         }
    });
});
Run Code Online (Sandbox Code Playgroud)