IntlChar::isxdigit

コードポイントが、16進数の文字であるかを調べる

説明

public static boolnull IntlChar::isxdigit(intstring $codepoint)

指定されたコードポイントが、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);
?>

参考

  • IntlChar::isdigit
  • ctype_xdigit