Dienstag, Januar 21, 2020

Wie kann ich überprüfen ob ein char eine Zahl oder ein Buchstabe?

Ich habe einen string und möchte ich Schleife es so, dass ich überprüfen kann, wenn jeder char einen Buchstaben oder eine Zahl.

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

Wie kann ich überprüfen ob ein char eine Zahl oder ein Buchstabe?

Ist es möglich, einen regulären Ausdruck zu verwenden, auf den gesamten string, anstatt zu iterieren über jedes Zeichen?
Check stackoverflow.com/q/9721636/1169798 und php.net/manual/en/function.is-numeric.php
is_numeric() sollte den trick tun für die überprüfung zahlen.

InformationsquelleAutor gadss | 2013-01-09

7 Kommentare

  1. 13

    Um zu testen, ob Charakter is_numeric verwenden:

    is_numeric($a[$i-1])

    Als unten:

    $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';
       }
    }
    Nicht jeder char, der nicht numerisch ist ein Brief!!
    Es ist die op – wenn Fällen.
    Was ist mit multibyte-chars ?

    InformationsquelleAutor hsz

  2. 3

    Mit regulären Ausdrücken können Sie versuchen, die folgenden.

    Test für eine Reihe

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

    Test für einen „Brief“

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

    Der Vorteil dieses Ansatzes ist vor allem von den „Buchstaben“ – test, die können Sie effizient definieren, was stellt als „Brief“ – Zeichen. In diesem Beispiel wird die grundlegende englische alphabet ist definiert als „Brief“.

    preg_match(‚/^[a-zA-Z\s\,]+$/‘)
    Ich glaube, OP bezieht sich auf die Prüfung eines einzigen Brief Charakter, nicht Worte.
    okok, so ist er looping

    InformationsquelleAutor Boaz

  3. 0

    Können Sie tun, indem Sie mit is_numeric() Funktion

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

    InformationsquelleAutor Edwin Alex

  4. 0

    php bietet einige nette Funktion zur Kasse chars. Verwenden Sie die apt-Funktionen, die als Bedingungen in if-Blöcken.

    besuchen:

    PHP char-Funktionen

    z.B. ctype_digit gibt true zurück, wenn Zahl numerisch ist.

    InformationsquelleAutor Sumit Malik

  5. 0

    Können Sie verwenden ctype_alpha zu prüfen, für die alphabetischen Zeichen(s).

    Ebenso kann man verwenden ctype_digit zu prüfen, numerische(s) Zeichen.

    is_numeric — Sucht, ob eine variable eine Zahl oder ein numerischer string

    is_numeric() Beispiel:

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

    Dem obigen Beispiel wird ausgegeben:

    '42' is numeric
    '1337' is numeric
    'not numeric' is NOT numeric
    'Array' is NOT numeric
    '9.1' is numeric

    Wo ctype_digit() und is_numeric() unterscheiden?

    Beispiel vergleichen von strings mit ganzen zahlen:

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

    InformationsquelleAutor Ani Menon

Kostenlose Online-Tests