如何在js字符串中修复这个从右到左的脚本问题

how to fix this right-to-left script issue in js string?

本文关键字:从右到左 问题 脚本 js 字符串      更新时间:2023-09-26

当使用奇怪的字符串时,我想要默认的行为而不是这个从右到左的脚本问题。

我甚至不能在问题中键入期望的输出。浏览器会自动把它放到错误的一边

var strange = "د.إ";
var common = "$";
var amount = 50;
var str_common = common + amount;
var str_strange = strange + amount;
alert(str_common);
// unexpected output
alert(str_strange);
// unexpected output
alert(str_common + ' -- ' + str_strange);
// unexpected output
alert(str_strange + ' -- ' + str_common);

js fiddle - http://jsfiddle.net/rahulroy9202/xL7cu2os/1/

您可以使用unicode控制字符U+202A来强制使用LTR:

var str_strange = ''u202A' + strange + amount;

'u202A是LTR嵌入的unicode控制字符。'u202B用于RTL嵌入。

更多信息在这里:https://en.wikipedia.org/wiki/Bi-directional_text#Table_of_possible_BiDi-types

您也可以使用'u200..系列。只需使用'u200E强制它为LTR。

代码片段(含组合):

var strange = "د.إ", common = "$", amount = 50, strStrange = '';
strStrange = ''u202A' + strange + amount;
alert(strStrange);
strStrange = ''u200E' + strange + ''u200E' + amount;
alert(strStrange);