©
本文档使用
php.cn手册 发布
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
ctype_alnum — 做字母和数字字符检测
$text
)
检查提供的 string ,text
是否全部为字母和(或)数字字符。
text
测试字符串。
如果text
中所有的字符全部是字母和(或者)数字,返回 TRUE
否则返回 FALSE
Example #1 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字符). 其它整数将会被解释为该值对应的十进制字符串.
[#1] someone at example dot com [2015-02-26 12:49:34]
Both preg_match('/^[a-zA-Z0-9]+$/', $var) and ctype_alnum returns true if you type only numbers (e.g.: 123456).
[#2] Anonymous [2013-01-28 17:12:25]
Quicktip: If ctype is not enabled by default on your server, replace ctype_alnum($var) with preg_match('/^[a-zA-Z0-9]+$/', $var).
[#3] Rory [2009-12-07 04:42:24]
Just for the record, Gentoo doesn't include this function by default. You'll have to recompile PHP with the "ctype" USE flag.
[#4] thinice at gmail dot com [2009-07-22 14:46:28]
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.';
}
?>