• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ctype_alnum()

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

    做字母和数字字符检测

    说明

    ctype_alnum(string $text): bool

    检查提供的string,$text是否全部为字母和(或)数字字符。

    参数

    $text

    测试字符串。

    返回值

    如果$text中所有的字符全部是字母和(或者)数字,返回TRUE否则返回FALSE

    范例

    A ctype_alnum()示例(使用默认的区域设置)

    <?php
    $strings = array('AbCd1zyZ9', 'foo!#$bar');
    foreach ($strings as $testcase) {
        if (ctype_alnum($testcase)) {
            echo "The string $testcase consists of all letters or digits.\n";
        } else {
            echo "The string $testcase does not consist of all letters or digits.\n";
        }
    }
    ?>
    

    以上例程会输出:

    The string AbCd1zyZ9 consists of all letters or digits.
    The string foo!#$bar does not consist of all letters or digits.
    

    注释

    Note:

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

    参见

    ctype_alnum() is a godsend for quick and easy username/data filtering when used in conjunction with str_replace().
    Let's say your usernames have dash(-) and underscore(_) allowable and alphanumeric digits as well.
    Instead of a regex you can trade a bit of performance for simplicity:
    <?php
    $sUser = 'my_username01';
    $aValid = array('-', '_');
    if(!ctype_alnum(str_replace($aValid, '', $sUser))) {
      echo 'Your username is not properly formatted.';
    }
    ?>
    
    Quicktip: If ctype is not enabled by default on your server, replace ctype_alnum($var) with preg_match('/^[a-zA-Z0-9]+$/', $var).
    It is also important to note that the behavior of `ctype_alnum` differs according to the operating system. For UNIX-based operating system, if you pass a value that is not a string (or an overloaded object), independently of the value, it will always result in false. However, if we do the same on Windows, using, for example, -1 as literal (a minus and a number greater than 0), we'll have true as result.
    <?php var_dump(ctype_alnum(-1));
    // UNIX: bool(false)
    // Windows: bool(true)
    Just for the record, Gentoo doesn't include this function by default. You'll have to recompile PHP with the "ctype" USE flag.

    下篇:ctype_alpha()