5

Google の入力を真似したい、入力している言語に基づいて、入力の入力方向を自動的に変更します。

ユーザーが入力している言語が RTL 言語か LTR 言語かを特定するにはどうすればよいですか? クロスブラウザで動作する必要があります。

4

4 に答える 4

4

属性 dir="auto" を使用する必要があります

例えば

<html dir="auto">

このようにして、ブラウザは最初に強く入力された文字を見て、テキストを自動的に調整します。

参考までに、これに関する W3C ドキュメントを次に示します。http://www.w3.org/International/tutorials/new-bidi-xhtml/qa-html-dir

于 2013-03-06T06:57:08.157 に答える
0

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
    
    <head>
    
        <script> 
            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);
            };
    
            // BIND KEYPRESS
            var input = $('input').on('keypress', keypress)[0];
    
            function keypress(e) {
                // need to wait for the character
                setTimeout(function () {
                    var isRTL = checkRTL(String.fromCharCode(e.charCode)),
                        dir = isRTL ? 'RTL' : 'LTR';
    
                    input.style.direction = dir;
                }, 0);
            }
        </script>
    
    </head>
    
    </body>
    
        <h1>Auto Direction
            <sup>(RTL | LTR)</sup>
        </h1>
        <input type="text" onkeypress="keypress()" placeholder="Type something&hellip;" />
    
    </body>
    
    </html>

于 2018-07-16T04:44:44.520 に答える