什么是判断字符串是否包含"从右到左"语言的文本的好方法.
我发现这个问题表明了以下方法:
public bool IsArabic(string strCompare)
{
char[] chars = strCompare.ToCharArray();
foreach (char ch in chars)
if (ch >= '\u0627' && ch <= '\u0649') return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
虽然这可能适用于阿拉伯语,但这似乎不包括其他RTL语言,如希伯来语.有没有通用的方法来知道某个特定字符属于RTL语言?
如何以编程方式检查浏览器是否将某些字符视为JavaScript中的RTL?
也许创建一些透明的DIV并查看文本的放置位置?
一点背景.Unicode 5.2增加了Avestan字母表支持.因此,如果浏览器支持Unicode 5.2,它会将U + 10B00等字符视为RTL(目前只有Firefox支持).否则,它会将这些字符视为LTR,因为这是默认值.
我如何以编程方式检查这个?我正在写一个Avestan输入脚本,如果浏览器太笨,我想覆盖bidi方向.但是,如果浏览器确实支持Unicode,则不应覆盖bidi设置(因为这将允许混合Avestan和Cyrillic).
我目前这样做:
var ua = navigator.userAgent.toLowerCase();
if (ua.match('webkit') || ua.match('presto') || ua.match('trident')) {
var input = document.getElementById('orig');
if (input) {
input.style.direction = 'rtl';
input.style.unicodeBidi = 'bidi-override';
}
}
Run Code Online (Sandbox Code Playgroud)
但是,显然,在Chrome和Opera开始支持Unicode 5.2之后,这会使脚本不太可用.
我正在尝试创建一种方法来检测Java中从右到左书写的字符串.我想出了这个问题做的在C#中类似的东西.
现在我需要有类似的东西,但用Java编写.
任何帮助表示赞赏.
html 属性dir和 csstext-align属性获得相同的结果。例如考虑两种情况:
dir="rtl" <p dir="rtl">
one two.
</p>Run Code Online (Sandbox Code Playgroud)
text-align: right<p style="text-align: right;">
one two.
</p>Run Code Online (Sandbox Code Playgroud)
这两个结果之间的唯一区别是点的位置。为什么不<p dir="rtl"> one two. </p>翻译成.owt eno?如果不能,那么dir属性的用途是什么?
当我尝试向 div 添加文本(div 具有 dir = RTL)时,它会将内容移到右侧。但是,它保留了特殊字符,如 . / + 到左侧,如果它们是句子的最后一个字符。
例子:
<dir dir="RTL">Hello There!</dir>
输出将是: !Hello There
任何人都可以帮助解决这个问题吗?
在我的网页中,我将语言环境设置为阿拉伯语,并希望通过使用从右到左更改内容显示的方向<html dir = "rtl">.但它没有从右到左显示网页的所有部分,有些正在反映,有些则没有.
是否有任何建议要改变网页从右到左的所有内容显示?