TextArea LTR / RTL

时间:2017-02-01 18:56:06

标签: html textarea right-to-left urdu

我有一个简单的html textarea,正文有RTL样式,所以textarea继承了body的样式。所以问题就在于此。

问题: 我必须使用$("#myTextArea")将以下文本显示在文本区域中.val("来自ajax结果的文本来到这里")。

文字如下,

پاکستان کا کل رقبہ 796096-0-0 مربع کلو میٹرز ہے۔

,文本的其余部分类似,需要几行。现在,乌尔都语文本中的数字实际上是796096-0-0,但显示相反。整篇文章中有几个这样的数字。请告诉我一种方法,我可以像往常一样将数字显示为LTR,将其余文本显示为RTL。

感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用RegEx搜索该号码。如果发现你可以反转然后更换它。

示例:

var textAreaValue = "پاکستان کا کل رقبہ 796096-0-0 مربع کلو میٹرز ہے۔";

// This regex string means to match a digit, dash, digit, dash, then 6 digits.
var matches = textAreaValue.match("[0-9]{6}\-[0-9]-[0-9]");

if(matches) { // Check that a match happened (multiple allowed)
    for(i = 0; i < matches.length; i++) {
        var reverseValue = matches[i].split("").reverse().join("");
        textAreaValue = textAreaValue.replace(matches[i], reverseValue);
    }
}

// textAreaValue is now پاکستان کا کل رقبہ 0-0-690697 مربع کلو میٹرز ہے۔
$("#myTextArea").val(textAreaValue);

答案 1 :(得分:0)

尝试给你的文字区域ltr。不是继承。可以工作

答案 2 :(得分:0)

// str = "پاکستان کا کل رقبہ 796096-0-0 مربع کلو میٹرز ہے۔";
str = str.replace(/([-0-9]+)/g, "\u202a$1\u202c");

您必须将此字符串放在CSS属性direction设置为rtl的容器中,否则您必须添加"\u202E"个字符到开头,否则这些部分以相反的顺序出现(但方向正确)。

这些是Unicode方向控制字符:

  • U + 202A:从左到右嵌入
  • U + 202C:pop-directional-formatting(基本上是嵌入结束)
  • U + 202E:从右向左覆盖

我一直在使用此作为参考:http://www.iamcal.com/understanding-bidirectional-text/