IntlChar::isxdigit
コードポイントが、16進数の文字であるかを調べる
説明
public static boolnull IntlChar::isxdigit(intstring $codepoint
)
戻り値が 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