在 javascript 中连接 RTL 字符串和 LTR 字符串

Concat RTL string with LTR string in javascript

我在将阿拉伯字符串与英文字符串连接时遇到问题,但它们的顺序被打乱了!

我尝试了 + 运算符和 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-13[=20=]0004-ر خ-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?