文字

ctype_xdigit

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

ctype_xdigit 检测字符串是否只包含十六进制字符

说明

bool ctype_xdigit ( string $text )

检查 string text 里面的字符是不是都是十六进制字符串。

参数

text

需要被测试的字符串。

返回值

如果 text 里面的每个字符都是十六进制字符。也就是只能包含十进制的树枝和 [A-Fa-f] 的字母。否则,返回 FALSE

范例

Example #1 一个 ctype_xdigit() 的例子

<?php
$strings 
= array( 'AB10BC99' 'AR1012' 'ab12bc99' );
foreach (
$strings  as  $testcase ) {
    if (
ctype_xdigit ( $testcase )) {
        echo 
"The string  $testcase  consists of all hexadecimal digits.\n" ;
    } else {
        echo 
"The string  $testcase  does not consist of all hexadecimal digits.\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.

注释

Note:

如果给出一个 -128 到 255 之间(含)的整数, 将会被解释为该值对应的ASCII字符 (负值将加上 256 以支持扩展ASCII字符). 其它整数将会被解释为该值对应的十进制字符串.

参见

  • ctype_digit() - 做纯数字检测

用户评论:

[#1] tom at hgmail dot com [2006-01-14 12:36:41]

This function shows its usefulness on a web site where a user is asked to entered a hexidecimal color code for a color. To prevent breaking W3C standard and having them enter in "neon-green" or the wrong type of code like 355511235.

In conjunction with strlen()  you could create a function like this:

function check_valid_colorhex($colorCode) {
    // If user accidentally passed along the # sign, strip it off
    $colorCode = ltrim($colorCode, '#');

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

    else return false;
}

上一篇: 下一篇: