Hauptmenü

Werkzeuge

Kategorien

Archiv

Funktion um manuelle Nummern hochzuzählen

Erstellt in PHP am 23. November 2018 vom Daschmi

Mit folgender Funktion können Nummern hochgezählt werden, die aus Zahlen und Buchstaben bestehen können. Bei Buchstaben wird der nächste Buchstabe im Alphabet genommen, bei Zahlen die letzte Zahl der Nummer erhöht. Sollte keine Zahl oder Buchstabe am Ende der Nummer stehen, so bekommt die Nummer das Suffix „-1“.

abstract class DS {

   public static function getNextNumber($prevNumber) {
               
      $prevNumber = trim($prevNumber);
      
      if (strlen($prevNumber) <= 0) return "1";            
      
      preg_match('/\d+$/', $prevNumber, $mNumberic);
      preg_match('/[A-Za-z]+$/', $prevNumber, $mCharacter);
      
      if (isset($mNumberic[0]) && intal($mNumberic[0]) > 0) {
            
            return preg_replace('/\d+$/', intval($mNumberic[0]) + 1, $prevNumber);
            
      } else if (isset($mCharacter[0]) && strlen($mCharacter[0]) > 0) {

            return preg_replace('/[A-Za-z]+$/', ++ $mCharacter[0], $prevNumber);
            
      } else {
            
            return $prevNumber.'-1';
            
      }
      
   }

}

Ausgabe:

DS::getNextNumber("") => "1"
DS::getNextNumber("1") => "2"
DS::getNextNumber("100") => "101"
DS::getNextNumber("ABC/2/CED-100") => "ABC/2/CED-101"
DS::getNextNumber("ABC/2/CEE") => "ABC/2/CEF"
DS::getNextNumber("B") => "C"
DS::getNextNumber("Z") => "AA"
DS::getNextNumber("12B") => "12C"
DS::getNextNumber("12-B") => "12-C"
DS::getNextNumber("12-B/") => "12-B/-1"
DS::getNextNumber("A") => "ZZ"

Die gleiche Funktion für VisualBasic findet man hier.