1

これと同じような質問があります

ただし、要件はそれほど厳しくありません。

必要なのは、入力文字列にアルファベット以外の文字列が含まれているかどうかを検出することだけです。

アルファベット以外の文字列が含まれている場合は、別のフォントファイルを選択します。

アルファベットの文字列のみが含まれている場合は、AmericanTypeWriterなどのフォントファイルを選択します。

アルファベットの文字列では、コンマ、句読点など、考えられるあらゆる種類の記号が含まれます。

アルファベットの文字列を定義するのは難しいです。

非アルファベット文字列の例を定義しましょう。

是中文

また、文字列にutf-8形式を想定しています。

別の定義方法:ヨーロッパ以外の言語の文字に該当しないものはすべて、自動的にアルファベットの文字列と見なされます。

ちなみに、この検出はphpで行う必要があります。

4

2 に答える 2

1

を使用しctype_alnum(string)ます。ドキュメントはこちら。この関数は文字列を受け取り、boolその文字列に他の文字が含まれているかどうかを示すaを返します。

動作してスペースをチェックする、より複雑な正規表現を使用することもできます。以下が機能するはずです。

preg_match("/^[a-zA-Z0-9 ]*$/u", $string) == 1トリックを行います。

于 2012-06-18T02:58:22.040 に答える
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);
}
于 2012-06-27T04:12:41.150 に答える