如何检查字母是字母还是数字?

时间:2013-01-09 08:25:18

标签: php numbers letter

我有一个字符串,我想循环它,以便我可以检查每个字符是否是一个字母或数字。

$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";
   }
}

如何检查字母是否是字母或数字?

7 个答案:

答案 0 :(得分:15)

要测试角色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';
   }
}

答案 1 :(得分:14)

您可以使用:

ctype_digit

ctype_alpha

答案 2 :(得分: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;

这种方法的好处主要来自“字母”测试,它可以让您有效地将构成定义为“字母”字符。在此示例中,基本英语字母表定义为“字母”。

答案 3 :(得分:0)

看到这个: http://php.net/manual/en/function.is-numeric.php

if(Is_numeric($char)) {
//Do stuff
}
else {
//Do other stuff
}

答案 4 :(得分:0)

您可以使用 is_numeric()功能

if (is_numeric($a[$i-1])){
      echo $a[$i-1]." is a number";
   } else {
      echo $a[$i-1]." is a letter";
   }

答案 5 :(得分:0)

php为checkout chars提供了一些不错的功能。在if块中使用apt函数作为条件。

访问:

PHP char functions

e.g。如果number为数字, ctype_digit 将返回true。

答案 6 :(得分:0)

您可以使用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

?>