使用jQuery的字符串中心的椭圆(字符串可以是任何语言,即印地语,泰米尔语等)



在我的文本字段中,我支持各种语言(英语,印地语,泰米尔语等)的输入。当字符串长度大于输入字段时,我想在文本中心显示椭圆。示例:椭圆...嘴唇

我做了一个工作示例

<html>
    <body>
        <table><tr><td> 
            <div id="x"></div> 
        </td></tr></table>
        <br/>
        <textarea id="t" onkeyup="foo(100)"></textarea>
        <br/>
        <script>
            function foo(maxSize){
                var x = document.getElementById("x");
                var t = document.getElementById("t");
                var tamil = /[u0300-u036fu1dc0-u1dffu20d0-u20ffufe20-ufe2fu0b82u0b83u0bbeu0bbfu0bc0-u0bc2u0bc6-u0bc8u0bca-u0bcdu0bd7]/g
                var hindi = /[u901u902u903u93cu93eu93fu940u941u942u943u944u945u946u947u948u949u94au94bu94cu94du951u952u953u954u962u963]/g
                var pos = 0;
                for(var i=0; i<2; i++){
                    pos++;
                    while(pos<t.value.length && (t.value.charAt(t.value.length-pos)+"").match(tamil)){
                        pos++;
                    }
                    while(pos<t.value.length && (t.value.charAt(t.value.length-pos)+"").match(hindi)){
                        pos++;
                    }
                }
                var y = t.value.substr(0,t.value.length-pos);
                var ending = t.value.substr(y.length,t.value.length);
                x.innerHTML = y + ending;
                while(x.offsetWidth>maxSize && y.length>1){
                    pos = 1;
                    while(pos<y.length-2 && (y.charAt(y.length-pos-1)+"").match(tamil)){
                        pos++;
                    }
                    while(pos<y.length-2 && (y.charAt(y.length-pos-1)+"").match(hindi)){
                        pos++;
                    }
                    y = y.substr(0,y.length-pos);
                    x.innerHTML = y + "..." + ending;
                }
            };
        </script>
    </body>
</html>

将文本输入到文本方面,结果显示在Div上。标签表使DIV不如身体宽。

印地语从这里梳理字符

泰米尔语中的泰米尔梳子

相关内容

最新更新