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.

参见

添加注释

用户贡献的注释 2 个注释

21
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;
}
-3
匿名
1 年前
如果您想检查诸如

"Tobias2" 之类的东西,字符串末尾是否有数字,则可以使用它。(例如,包含课程名称等的课程列表)

只需将最后一个字符子字符串化,并将其放入函数中即可。
我们应该为从我们的代码中删除这些该死的正则表达式而感到高兴。永远不要使用正则表达式
To Top