将数值连接到JS中阿拉伯字符串的右侧
Concatenate numeric value to the right side of an Arabic String in JS
var 数据 = "عينات";
var num = "123";
var res = data + num; // returns عينات123
我试图将数字连接到阿拉伯文本的右侧,但它跳到左侧,也尝试反转字符串,但没有帮助。
请在 Javascript 中提出解决方案。
提前致谢!
你可以利用Directional_Formatting_Codes:
- LRE U+202A 从左到右嵌入 将以下文本视为从左到右嵌入。
- PDF U+202C POP 方向格式结束最后一个 LRE、RLE、RLO 或 LRO 的范围。
var data = "عينات";
var num = "123";
var res = "\u202A" + data + "\u202C" + num
console.log(res);
另一个答案建议在文本中添加控制字符,但正如有人评论的那样,这种方法有缺点。
无论字符串的顺序如何,您都将数字放在左边的原因是因为您使用的是 LTR 元素(或始终为 LTR 的浏览器控制台)。然后,如果数字在前,则它们从左侧开始,如果阿拉伯字母在前,则它们从右侧开始,因为阿拉伯字母即使在 LTR 元素内也具有“硬”RTL 方向。
但是,如果您使用的是 RTL 元素并将数字放在前面,它将按预期显示:
<div dir="rtl">123عينات</div>
或动态使用 JavaScript:
var data = "عينات";
var num = "123";
var res = num + data;
var el = document.createElement('div');
el.dir = "rtl";
el.textContent = res;
document.body.append(el);
var 数据 = "عينات";
var num = "123";
var res = data + num; // returns عينات123
我试图将数字连接到阿拉伯文本的右侧,但它跳到左侧,也尝试反转字符串,但没有帮助。
请在 Javascript 中提出解决方案。
提前致谢!
你可以利用Directional_Formatting_Codes:
- LRE U+202A 从左到右嵌入 将以下文本视为从左到右嵌入。
- PDF U+202C POP 方向格式结束最后一个 LRE、RLE、RLO 或 LRO 的范围。
var data = "عينات";
var num = "123";
var res = "\u202A" + data + "\u202C" + num
console.log(res);
另一个答案建议在文本中添加控制字符,但正如有人评论的那样,这种方法有缺点。
无论字符串的顺序如何,您都将数字放在左边的原因是因为您使用的是 LTR 元素(或始终为 LTR 的浏览器控制台)。然后,如果数字在前,则它们从左侧开始,如果阿拉伯字母在前,则它们从右侧开始,因为阿拉伯字母即使在 LTR 元素内也具有“硬”RTL 方向。
但是,如果您使用的是 RTL 元素并将数字放在前面,它将按预期显示:
<div dir="rtl">123عينات</div>
或动态使用 JavaScript:
var data = "عينات";
var num = "123";
var res = num + data;
var el = document.createElement('div');
el.dir = "rtl";
el.textContent = res;
document.body.append(el);