PHP Conference Japan 2024

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_xdigit 检查字符是否表示十六进制数字

描述

ctype_xdigit(混合 $text): 布尔值

检查提供的 字符串 text 中的所有字符是否为十六进制“数字”。

参数

text

要测试的字符串。

注意:

如果提供 -128 到 255(含)之间的 整数,则将其解释为单个字符的 ASCII 值(负值添加 256 以允许扩展 ASCII 范围内的字符)。任何其他整数都将被解释为包含整数十进制数字的字符串。

警告

从 PHP 8.1.0 开始,传递非字符串参数已弃用。将来,该参数将被解释为字符串而不是 ASCII 代码点。根据预期的行为,该参数应转换为 字符串 或显式调用 chr()

返回值

如果 text 中的每个字符都是十六进制“数字”(即十进制数字或 [A-Fa-f] 中的字符),则返回 true,否则返回 false。当使用空字符串调用时,结果将始终为 false

示例

示例 #1 ctype_xdigit() 示例

<?php
$strings
= array('AB10BC99', 'AR1012', 'ab12bc99');
foreach (
$strings as $testcase) {
if (
ctype_xdigit($testcase)) {
echo
"字符串 $testcase 由所有十六进制数字组成。\n";
} else {
echo
"字符串 $testcase 不仅由十六进制数字组成。\n";
}
}
?>

以上示例将输出

The string AB10BC99 consists of all hexadecimal digits.
The string AR1012 does not consist of all hexadecimal digits.
The string ab12bc99 consists of all hexadecimal digits.

参见

添加注释

用户贡献的注释 1 条注释

22
tom at hgmail dot com
18 年前
此函数在用户被要求输入颜色的十六进制颜色代码的网站上显示出其用处。为了防止破坏 W3C 标准并让他们输入“霓虹绿”或错误类型的代码,例如 355511235。

结合 strlen(),您可以创建这样的函数

function check_valid_colorhex($colorCode) {
// 如果用户意外传递了 # 符号,将其剥离
$colorCode = ltrim($colorCode, '#');

if (
ctype_xdigit($colorCode) &&
(strlen($colorCode) == 6 || strlen($colorCode) == 3))
return true;

else return false;
}
To Top