javascript - 在 Javascript 中连接双向字符串

标签 javascript date direction bidi

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

Friday • October 10 2014

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

[ • 12:00 am UTC-04:00]‬

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

Friday • October 10 2014‪[ • 12:00 am UTC-04:00]

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

שישי • 10 אוקטובר 2014

‪[ • 12:00 am UTC-04:00]‬

שישי • 10 אוקטובר 2014‪[ • 12:00 am UTC-04:00]‬

请注意 RTL 希伯来语月份和年份之间时间字符串的奇数插入。

我曾尝试将两个字符串的部分包裹在定向代码(U+202A、U+202C 等)中,但没有成功。看起来日期字符串已经是 RTL 和 LTR 的混合体了,但我已经搜索过它并且找不到任何方向字符,尽管我很可能会放弃这次搜索。

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

最佳答案

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

通过 JQ Calendars 生成带有空格和项目符号字符的日期字符串作为格式的一部分,“重置”格式,因此字符串的结尾位于年份的左侧。显式嵌入时间字符串,前面加上“U+202A”,将时间字符串作为一个整体插入日期字符串之后,而不插入结果。最后,我结束了

الجمعة • 10 تشرين الأول 2014 • ‪12:00 am UTC-04:00

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

关于javascript - 在 Javascript 中连接双向字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26074289/

相关文章:

javascript - x 可编辑行内的可编辑 list

javascript - 带有两个 jquery 下拉菜单的依赖过滤

uiimageview - UIView 内的 UIImageview 上的 UISwipeGestureRecognizer 检测到错误的滑动​​?

Android显示两个地理点之间的行车路线

javascript - css 剪辑路径只悬停在形状上

javascript - 将溢出的元素移动到另一个div

Mysql 查找预约系统预约之间的空闲时间(时段)

JavaScript : How can i change the date numbers. ...?

mysql - 如何检查日期范围的日期位于mysql查询中的两个日期之间

html - 3 列流体 flexbox 和 rtl