如何检查字符是字母还是数字?
Posted
技术标签:
【中文标题】如何检查字符是字母还是数字?【英文标题】:How can I check if a char is a letter or a number? 【发布时间】:2012-12-23 06:00:36 【问题描述】:我有一个字符串,我想循环它,以便检查每个字符是字母还是数字。
$s = "rfewr545 345b";
for ($i=1; $i<=strlen($s); $i++)
if ($a[$i-1] == is a letter)
echo $a[$i-1]." is a letter";
else
echo $a[$i-1]." is a number";
【问题讨论】:
是否可以对整个字符串使用正则表达式而不是遍历每个字符? 检查***.com/q/9721636/1169798和php.net/manual/en/function.is-numeric.phpis_numeric()
应该可以检查数字。
【参考方案1】:
你可以使用:
ctype_digit
和
ctype_alpha
【讨论】:
还有 ctype_alnum($character),仅供参考。【参考方案2】:要测试字符是否为is_numeric
,请使用:
is_numeric($a[$i-1])
如下:
$s = "rfewr545 345b";
for ($i = 0; $i < strlen($s); $i++)
$char = $s[$i];
if (is_numeric($char))
echo $char . ' is a number';
else
echo $char . ' is a letter';
【讨论】:
不是每个不是数字的字符都是字母!! 多字节字符呢?【参考方案3】:使用正则表达式,您可以尝试以下操作。
测试一个数字
if (preg_match('/\d/', $char)) :
echo $char.' is a number';
endif;
测试“字母”
if (preg_match('/[a-zA-Z]/', $char)) :
echo $char.' is a letter';
endif;
这种方法的好处主要来自“字母”测试,它可以让您有效地将构成的内容定义为“字母”字符。在这个例子中,基本的英文字母被定义为一个“字母”。
【讨论】:
preg_match('/^[a-zA-Z\s\,]+$/') 我相信 OP 指的是测试单个 letter 字符,而不是 words。【参考方案4】:看到这个: http://php.net/manual/en/function.is-numeric.php
if(Is_numeric($char))
//Do stuff
else
//Do other stuff
【讨论】:
【参考方案5】:您可以使用 is_numeric() 函数
if (is_numeric($a[$i-1]))
echo $a[$i-1]." is a number";
else
echo $a[$i-1]." is a letter";
【讨论】:
【参考方案6】:php 提供了一些不错的功能来检查字符。使用 apt 函数作为 if 块中的条件。
访问:
PHP char functions
例如ctype_digit 如果数字是数字则返回 true。
【讨论】:
【参考方案7】:您可以使用ctype_alpha 来检查字母字符。
同样,您可以使用ctype_digit 来检查数字字符。
is_numeric
— 判断变量是数字还是数字字符串
is_numeric()
示例:
<?php
$tests = array(
"42",
0b10100111001,
"not numeric",
array(),
9.1
);
foreach ($tests as $element)
if (is_numeric($element))
echo "'$element' is numeric", PHP_EOL;
else
echo "'$element' is NOT numeric", PHP_EOL;
?>
上面的例子会输出:
'42' is numeric
'1337' is numeric
'not numeric' is NOT numeric
'Array' is NOT numeric
'9.1' is numeric
ctype_digit()
和 is_numeric()
有何不同?
字符串与整数的比较示例:
<?php
$numeric_string = '42';
$integer = 42;
ctype_digit($numeric_string); // true
ctype_digit($integer); // false (ASCII 42 is the * character)
is_numeric($numeric_string); // true
is_numeric($integer); // true
?>
【讨论】:
以上是关于如何检查字符是字母还是数字?的主要内容,如果未能解决你的问题,请参考以下文章