标签: javascript arabic
我正在处理一个JavaScript代码,该代码显示带有混合阿拉伯语,数字和英语单词的字符串。代码用一个数字替换子串“##”,如下所示,
" بون شاسع ##mi".replace("##",123)
我希望结果是(数字“123”正好在“mi”之前和阿拉伯字符之后):
بونشاسع
但是,我总是得到以下结果(数字“123”意外地放在阿拉伯字符之前),
那么,有人能告诉我如何获得这个理想的结果吗?
答案 0 :(得分:2)
由于文本是阿拉伯语,因此它使用从右到左的方向。但是,当您将数字与要从左到右显示的数字混合时,事情会变得棘手。
这可以使用\u200E来修复,.replace表示从左到右标记字符。它是一个不可见的字符,它向文本渲染器指示应该在该方向上呈现以下内容,而不管正常规则建议的是什么。
\u200E
.replace
您可以在"بون شاسع##mi".replace("##","\u200E"+123) 调用中添加标记,如下所示:
"بون شاسع##mi".replace("##","\u200E"+123)
.concat
这里是控制台输出的比较,没有和没有标记: