1

我有一个简单的 html textarea,body 有 RTL 样式,所以 textarea 继承了 body 的样式。所以问题来了。

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

正文如下,

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

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

谢谢。

4

3 回答 3

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);
于 2017-02-01T20:02:14.573 回答
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/

于 2017-04-06T18:51:00.663 回答
0

Try to give your text area ltr . Not inherits . May works

于 2017-02-01T21:34:01.563 回答