Как я могу проверить, является ли символ буквой или числом?

У меня есть строка, и я хочу зациклить ее, чтобы я мог проверить, является ли каждый символ буквой или числом.

$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 ответов


чтобы проверить, если символ 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';
   }
}

вы можете использовать:

ctype_digit

и

ctype_alpha


с регулярными выражениями вы можете попробовать следующее.

тест на число

if (preg_match('/\d/', $char)) :
     echo $char.' is a number';
endif;

тест на "букву"

if (preg_match('/[a-zA-Z]/', $char)) :
     echo $char.' is a letter';
endif;

преимущество этого подхода заключается главным образом в тесте" письмо", который позволяет эффективно определить, что составляет как символ "буквы". В этом примере основной английский алфавит определяется как"буква".


посмотреть этот: http://php.net/manual/en/function.is-numeric.php

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

вы можете сделать, используя is_numeric () функции

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

php предоставляет некоторую приятную функцию для проверки символов. Используйте функции apt как условия в блоках if.

на странице:

PHP char функции

например ctype_digit возвращает true, если number является числовым.


вы можете использовать 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

?>