我有一个webview,它会从URL中加载一个字符串,我不确定这是否是正确的方法,但我想要做的是检查这个字符串是否是波斯语,如果是,我将更改webview的文本对齐方式为RTL,否则更改为LTR。是否可以确定该字符串是波斯语还是英语?或者是否有其他更好的处理方法?
谢谢提前。
谢谢提前。
尝试以下正则表达式,检查阿拉伯语、波斯语和希伯来语字符范围。
public static final Pattern RTL_CHARACTERS =
Pattern.compile("[\u0600-\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF]");
Matcher matcher = RTL_CHARACTERS.matcher("براي تست");
if(matcher.find()){
return true; // it's RTL
}
试试 波斯工具,这是一个非常棒的JavaScript库,它可以处理很多其他有用的功能。
import { isPersian, toPersianChars } from "persian-tools2";
isPersian("این یک متن فارسی است؟") // true
isPersian("Lorem Ipsum Test") // false
import com.cybozu.labs.langdetect.Detector;
import com.cybozu.labs.langdetect.DetectorFactory;
import com.cybozu.labs.langdetect.Language;
更多参考资料请点击这里
//MAX_LENGTH = maximum allowable length of string
var pattern = /^[a-zA-Z0-9-\u0600-\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF ]{2,MAX_LENGTH}$/;
JavaScript 示例:
function check_En_Numbers_space_Persian_Arabic_Hebrew(str) {
var pattern = /^[a-zA-Z0-9-\u0600-\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF ]{2,100}$/;
return pattern.test(str.trim());
}