我对此one
提出了类似的问题但是,我的要求不那么严格。
我需要的只是检测输入字符串是否包含任何非字母字符串。
如果它确实包含非字母字符串,那么我将选择一个不同的字体文件。
如果它只包含字母字符串,那么我将选择像AmericanTypeWriter这样的字体文件。
按字母字符串,包含各种可能的符号,如逗号,标点符号等。
很难定义字母字符串。
让我来定义什么是非字母字符串的示例。
这是中文
假设字符串采用utf-8格式。
定义的另一种方式:任何不属于非欧洲语言字符的东西,都会被自动假定为字母字符串。
顺便说一下,我需要在php中进行这种检测。
答案 0 :(得分:1)
使用ctype_alnum(string)
。文档Here。此函数接受一个字符串并返回一个bool
,告诉您该字符串是否包含其他字符。
您还可以使用更复杂的正则表达式,它将起作用并检查空格。以下应该有效。
preg_match("/^[a-zA-Z0-9 ]*$/u", $string) == 1
可以解决问题。
答案 1 :(得分:1)
我找到了更好的答案。灵感来自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);
}