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

Php 如何检查字符是字母还是数字?,php,numbers,letter,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"; } } $s=“rfewr545 345b”; 对于($i=1;$i要

我有一个字符串,我想循环它,这样我就可以检查每个字符是字母还是数字

$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";
   }
}
$s=“rfewr545 345b”;

对于($i=1;$i要测试字符
是否为数字,请使用:

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';
   }
}
$s=“rfewr545 345b”;
对于($i=0;$i
您可以使用:

请参见:


您可以使用is\u numeric()函数执行此操作

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

对于正则表达式,您可以尝试以下方法

测试一个数字

if (preg_match('/\d/', $char)) :
     echo $char.' is a number';
endif;
if (preg_match('/[a-zA-Z]/', $char)) :
     echo $char.' is a letter';
endif;
测试“字母”


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

php提供了一些很好的函数来签出字符。在if块中使用apt函数作为条件

访问:

e、 g.ctype\u digit如果数字是数字,则返回true。

您可以使用它检查字母字符

类似地,您可以使用检查数字字符

是数字的
-查找变量是数字还是数字字符串

是数字()
示例:

<?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;
        }
    }
?>
其中
ctype\u digit()
是数字()
不同?

比较字符串与整数的示例:

<?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

?>


是否可以对整个字符串使用正则表达式而不是对每个字符进行迭代?检查和
Is_numeric()
应该能够检查数字。不是每个非数字字符都是字母!!多字节字符呢?preg_match('/^[a-zA-Z\s\,]+$/'))我相信OP指的是测试单个字母字符,而不是单词。
'42' is numeric
'1337' is numeric
'not numeric' is NOT numeric
'Array' is NOT numeric
'9.1' 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

?>