让我通过一些例子来解释我的问题;如何检测波斯语字符?
// expected result: ("true" means "rlt" and "false" means "ltr")
var test = "..!"; // true
var test = "te"; // false
var test = "!te"; // false
var test = "..ق"; // true
var test = "مب"; // true
var test = "eس"; // false
var test = "سe"; // true
这里是我当前的代码:
// declare direction of comment in textarea
var x = new RegExp("[A-Za-z]"); // is ascii
var isAscii = x.test($("#textarea-edit-"+post_id_for_edit).val().substring(0, 1));
if(isAscii){
$("#textarea-edit-"+post_id_for_edit).css("direction", "ltr");
} else {
$("#textarea-edit-"+post_id_for_edit).css("direction", "rtl");
}
我希望它是基于第一个字符是一个信(无论是波斯语和英语)。但我的代码是基于第一个字符(它可以是任何东西,甚至是符号)。
那么我该怎么做?
检查https://jsfiddle.net/22uovqhc/。实际上,我对波斯信的正则表达式有怀疑,有建议使用'[\ u0600- \ u06FF]',甚至是'[\ u0600- \ u06FF \ uFB8A \ u067E \ u0686 \ u06AF]' –
你的意思是阿拉伯语脚本中的[波斯语字母](https://en.wikipedia.org/wiki/Persian_alphabet)中的字母? (这与印地语是用梵文脚本写的相似。)当然,许多语言(包括英语)使用不在他们的字母表中的字母,因此最好不要过于狭隘地关注语言的字母表。 –