在将阿拉伯字符串与英语字符串连接在一起时遇到麻烦,但是它们的顺序困惑了!

我尝试了+运算符和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

最佳答案

您正在寻找的字符是 \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吗?

10-05 19:02