Format IBAN

Status
Niet open voor verdere reacties.

ManuNeko

Gebruiker
Lid geworden
24 jun 2009
Berichten
110
Hoe kan ik een string formateren als bankrekeningnummer en IBAN?

Ik zou dit graag doen zonder zlef de string in stukken te kappen.
 
Ik heb het IBAN nummer onder de vorm van een string opgeslagen. Zoiets als: BE124567890123456.
En ik wil dat formatteren als: BE12 4567 8901 23456

Idem dito voor het gewoon rekeningnummer: 123456789012 en dat wil ik formatteren als 123-4567890-12
 
Dan zul je zelf moeten gaan knippen en plakken denk ik want er is geen standaard functie voor zover ik weet. Maar als het altijd op die manier getoond wordt zou het niet zo moeilijk moeten zijn om te formatteren.
 
Nee, moeilijk is dat niet. Maar ik had gehoopt dat er iets bestond om dat te formatteren.

Toch bedankt.
 
Je zou even kunnen zoeken of iemand zo'n functie heeft, of er zelf een functie voor maken en die online zetten.
 
Ok, dit is wat ik ervan gemaakt heb.

Code:
function format_string($InString, $Format)
 {
   if (strlen($InString) < strlen($Format))
     $InString = str_pad($InString, strlen($Format) - strlen($InString));
   $f = 0;
   $i = 0;
   $OutString = "";
   while ($f <= strlen($Format))
    {
      switch (substr($Format, $f, 1))
  	{
         case "0":
           $OutString = $OutString . substr($InString, $i++, 1);
           break;
         case "L":
           $OutString = $OutString . strtoupper(substr($InString, $i++, 1));
	   break;
         default:
           $OutString = $OutString . substr($Format, $f, 1);
        }
      $f++;		
	}
   return $OutString;
 }

InString is de te formatteren string en format het formaat.
Dit het type formaat is nog uitbreidbaar, door gewoon de case aan te passen. Voorlopige zijn er 2 types:
"0": cijfer
"L": hoofdletter

Ik hoop dat iemand dit nuttig vind.
 
Dit is een functie met de strings die door jou geleverd

PHP:
<?PHP

function rekCheck($rekNum) {

	$rekCheck = (int)$rekNum;
	
	if($rekCheck != 0 ) {
		//only numbers 123456789012
        if(strlen($rekNum) == 12  ) {
            $rekReturn = substr($rekNum, 0, 3).'-'.substr($rekNum, 3, 7).'-'.substr($rekNum, 10, 2) ;
        }
         
	} else {
		// characters and numbers BE124567890123456
        if(strlen($rekNum) == 17  ) {
            $rekReturn = substr($rekNum, 0, 4).' '.substr($rekNum, 4, 4).' '.substr($rekNum, 8, 4).' '.substr($rekNum, 12, 5) ;
        }  
	}
    
    return $rekReturn;
}

echo rekCheck('BE124567890123456');

echo '<br /><br />';

echo rekCheck('123456789012');


?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan