正規表現を使用して簡単な JavaScript/jQuery コードを作成できます。ただし、JavaScript では正規表現が制限されているため、プラグインを追加する場合は、Unicode を完全にサポートするXRegExpライブラリを使用する必要があります。次に、 \p{Hebrew}のような式を使用して、文字をチェックして、Unicode のどのブロックに属しているかを確認できます。http://www.regular-expressions.info/unicode.html
同じジレンマに直面して、各文字列の文字をループ処理し、ヘブライ文字の出現回数をカウントする関数を自分で作成しました (私のサイトはイディッシュ語と英語のバイリンガルです)。次に、文字列にスコアが付けられ、スコアの高い要素に「rtl」クラスが適用されます。Unicode のすべての RTL 言語を for ループに簡単に追加して、これをより汎用的にすることができます。
http://jsfiddle.net/Swyu4/9/
jsfiddle の XRegExp ライブラリにリンクしている外部リソースに注意してください。
$('p').each(function() {
if(isRTL($(this).text()))
$(this).addClass('rtl');
});
function isRTL(str) {
var isHebrew = XRegExp('[\\p{Hebrew}]');
var isLatin = XRegExp('[\\p{Latin}]');
var partLatin = 0;
var partHebrew = 0;
var rtlIndex = 0;
var isRTL = false;
for(i=0;i<str.length;i++){
if(isLatin.test(str[i]))
partLatin++;
if(isHebrew.test(str[i]))
partHebrew++;
}
rtlIndex = partHebrew/(partLatin + partHebrew);
if(rtlIndex > .5) {
isRTL = true;
}
/*
console.log('Latin score: ' + partLatin);
console.log('Hebrew score: ' + partHebrew);
console.log('trlIndex score: ' + rtlIndex);
console.log('isRTL: ' + isRTL);
*/
return isRTL;
}