检测PHP非字母语言的字符串(Detect non-alphabetic language stri

2019-10-16 21:34发布

我有这种类似的问题一个

不过,我有一个不太严格的要求。

所有我需要的是检测如果输入的字符串包含非字母串。

如果它确实包含非字母串,那么我会选择不同的字体文件。

如果它仅包含字母串,那么我会选择像AmericanTypeWriter字体文件。

通过字母串,这将包括各种可能的符号,如逗号,标点符号等。

这是很难定义的字母串。

让我来定义什么是无字母串的一个例子。

这是中文

并假设该字符串UTF-8格式。

定义的另一种方法:任何没有在非欧洲语言字符掉落,被自动认为是字母串。

我需要的方式来做到这一点的检测在PHP。

Answer 1:

使用ctype_alnum(string) 。 文档在这里 。 这个函数接受一个字符串,并返回一个bool ,告诉您该字符串是否包含其他字符或没有。

你也可以使用更复杂的正则表达式将工作和检查空间。 下面应该工作。

preg_match("/^[a-zA-Z0-9 ]*$/u", $string) == 1就可以了。



Answer 2:

我发现了一个更好的答案。 灵感来自https://stackoverflow.com/a/4923410/80353

header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('utf-8');

function isThisChineseText($text) {
    return preg_match("/\p{Han}+/u", $text);
}


文章来源: Detect non-alphabetic language string in PHP