(PHP 7, PHP 8)
IntlChar::isxdigit — コードポイントが、16進数の文字であるかを調べる
$codepoint
): ?bool指定されたコードポイントが、16進数の文字であるかを判定します。
戻り値が true
になるのは、
general category "Nd" (decimal digit numbers) にある文字か、
ASCII と 全角ASCII の a-f および A-F にある文字です。
(つまり、コードポイント 0041..0046, 0061..0066, FF21..FF26, FF41..FF46 に入る文字です)
この関数の動作は、IntlChar::digit($codepoint, 16) >= 0
と同等です。
codepoint
コードポイントを表す int 型の値 (例: U+2603 SNOWMAN を表す 0x2603
)、あるいは UTF-8 文字列としてエンコードされた文字 (例: "\u{2603}"
)。
codepoint
が16進文字である場合は、true
を返します。
そうでない場合は、false
を返します。
失敗した場合は、null
を返します。
例1 さまざまなコードポイントの例
<?php
var_dump(IntlChar::isxdigit("A"));
var_dump(IntlChar::isxdigit("1"));
var_dump(IntlChar::isxdigit("\u{2603}"));
?>
上の例の出力は以下となります。
bool(true) bool(true) bool(false)
注意:
16進数の文字のうち、ASCII 文字の範囲に定義を絞るには、以下のようにします:
<?php
$isASCIIHexadecimal = IntlChar::ord($codepoint) <= 0x7F && IntlChar::isxdigit($codepoint);
?>