Javascript Facebook帖子中的RTL文本重新排序单词
我来自突尼斯,目前正在开发一个名为Javascript Facebook帖子中的RTL文本重新排序单词,javascript,facebook,right-to-left,Javascript,Facebook,Right To Left,我来自突尼斯,目前正在开发一个名为PHPFOX的PHP脚本。在其中,我想集成一种自动更改TextBox文本方向的功能。具体来说,当你进入Facebook并想留下评论时,文本框的输入方向将根据你选择的键盘方向而改变 换句话说,如果您为键盘选择了阿拉伯语,TextBox会自动设置为RTL方向 以下是我目前使用的代码: $('input').keyup(function() { $this = $(this); if ($this.val().length == 1) {
PHPFOX
的PHP脚本。在其中,我想集成一种自动更改TextBox
文本方向的功能。具体来说,当你进入Facebook并想留下评论时,文本框的输入方向将根据你选择的键盘方向而改变
换句话说,如果您为键盘选择了阿拉伯语,TextBox
会自动设置为RTL
方向
以下是我目前使用的代码:
$('input').keyup(function() {
$this = $(this);
if ($this.val().length == 1) {
var x = new RegExp("[\x00-\x80]+"); // ASCII
//alert(x.test($this.val()));
var isAscii = x.test($this.val());
if(isAscii) {
$this.css("direction", "ltr");
} else {
$this.css("direction", "rtl");
}
}
});
输入时一切正常。但是,看看当我在我的网站中输入一个混合的LTR
和RTL
句子,然后将其发布到Facebook时会发生什么:
以下是我输入的内容:
以下是Facebook上出现的内容:
看到区别了吗?我该如何解决这个问题呢?首先,你所采取的方法非常出色,我为你鼓掌。通过CSS切换
的方向以允许自然键入非常有意义
然而,你的输出之所以出人意料,是因为你发送到Facebook的生成内容。我的猜测是,由于文本的最后几个字符是RTL,所以输入的CSS仍然设置为RTL
考虑这个例子(可以看到结果):
LTR:这是一些文字
RTL:这是一些文字
由于第二个
显示为dir=“rtl”
,因此文本最终被重新排序,每个LTR短语被视为单个rtl“单词”
你可以考虑,在你的例子中,只是确保在提交帖子之前,将CSS的方向设置回<代码> LTR ,这将产生我认为你正在寻找的结果。
如果您感兴趣,下面是一篇讨论LTR
和RTL
文本的HTML和纯文本样式呈现之间的区别的文章。它不会给你任何答案,但会指出问题本身的更多细节。如果我的答案对你有帮助,请考虑通过点击分数下方的小复选框将其标记为“接受”。如果没有,请让我知道你需要什么进一步的信息,这样我可以帮助你更多。
<div>
<b>LTR:</b> <span dir="ltr">This is some الفبای فارسی text</span>
<br /><br />
<b>RTL:</b> <span dir="rtl">This is some الفبای فارسی text</span>
</div>