在JavaScript中使用LTR字符串的Concat RTL字符串

时间:2015-05-01 13:51:24

标签: javascript internationalization right-to-left

我在将阿拉伯字符串与英文字符串连接时遇到麻烦,但他们的订单混乱!

我尝试了+运算符和str1.concat(..),但对我没有任何作用。

var a = 'english'
var b = 'أ.ب-000082-13'
var c = '000004-ر خ-2014.xml'

//var myCoolString =a + '\\' + b + '\\' + c;

var myCoolString =a.concat("\\",b,"\\",c) 

document.getElementsByTagName('output')[0].innerHTML = myCoolString;

结果是这样的:english \أ.ب-000082-1​​3 \ 000004-رخ-2014.xml

1 个答案:

答案 0 :(得分:7)

您要找的字符是\u202A, \u202B and \u202C

function wrap_dir(dir, str) {
    if (dir === 'rtl') return '\u202B' + str + '\u202C';
    return '\u202A' + str + '\u202C';
}


wrap_dir('ltr', a) + wrap_dir('ltr', '\\') + wrap_dir('rtl', b) + wrap_dir('ltr', '\\') + wrap_dir('ltr', c);
// "‪english‬‪\‬‫أ.ب-000082-13‬‪\‬‪000004-ر خ-2014.xml‬"

不确定为什么c想成为 LTR ,可能是因为它结束了.xml