在Javascript中连接Bidi字符串

在Javascript中连接Bidi字符串,javascript,date,direction,bidi,Javascript,Date,Direction,Bidi,我正在使用JQuery日历为应用程序生成日期字符串。如果将语言设置为英语,则会得到如下日期字符串: 2014年10月10日星期五 JQ日历不处理时间,所以我自己格式化字符串的时间部分: [•UTC上午12:00-04:00]‬ (为了清晰起见,包含括号;它们不会成为最终字符串的一部分。)接下来,我将这两个字符串相加,得到: 2014年10月10日星期五‪[•UTC上午12:00-04:00] 这正是我想要的。但是,当我将语言设置为希伯来语时,我的结果是: 2014年 ‪[•UTC上午12:00-

我正在使用JQuery日历为应用程序生成日期字符串。如果将语言设置为英语,则会得到如下日期字符串:

2014年10月10日星期五

JQ日历不处理时间,所以我自己格式化字符串的时间部分:

[•UTC上午12:00-04:00]‬

(为了清晰起见,包含括号;它们不会成为最终字符串的一部分。)接下来,我将这两个字符串相加,得到:

2014年10月10日星期五‪[•UTC上午12:00-04:00]

这正是我想要的。但是,当我将语言设置为希伯来语时,我的结果是:

2014年

‪[•UTC上午12:00-04:00]‬

2014年‪[•UTC上午12:00-04:00]‬

注意RTL希伯来语月份和年份之间时间串的奇怪插入

我尝试过用方向码(U+202A、U+202C等)包装两个字符串的部分,但都没有成功。看起来日期字符串已经是RTL和LTR的混合体了,但是我已经搜索过了,找不到任何方向字符,尽管我很可能是这个搜索的预兆


有没有关于如何解决这个问题的想法?不管是好是坏,我希望时间字符串“跟随”日期字符串而不出现奇怪的中断,即使这在技术上可能不正确。我知道Javascript的toLocaleString()功能,但它还没有得到很好的支持,所以我想至少使用上面的方法作为一种退路。

我解决了这个问题。事实证明,希伯来语并不是严格意义上的RTL;字符串的数字部分以LTR格式呈现,即使单词和句子以RTL格式呈现。因此,上面显示的结果是“正确的”,也就是说,我将时间字符串附加到日期字符串的“结束”上,日期字符串立即出现在2014年最后一个数字的右侧

通过JQ日历生成带有空格和项目符号字符的日期字符串作为格式的一部分,会“重置”格式,使字符串的结尾紧跟在一年的左边。显式嵌入时间字符串(前面是“U+202A”),将时间字符串作为一个整体插入日期字符串之后,而不插入结果。最后,我以

2014年‪UTC上午12:00-04:00

这虽然不是严格意义上的RTL,但很好地满足了我的目的