login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Kenteken automatisch formatteren (Opgelost)

Offline Jointjeff - 28/04/2014 10:37
Avatar van JointjeffHTML interesse Hallo iedereen,

Weet iemand hier hoe je het beste een kenteken-invoer automatisch kan formatteren?

De '-' (zonder quotes) moeten dan automatisch geplaatst worden. Voer je bijvoorbeeld '90FPDP' in, dan moet er automatisch '90-FP-DP' van gemaakt worden.

Nog een voorbeeld, invoer: '2TLN59' en de uitvoer: '2-TLN-59'.

Ik zie dat het op de website van de ANWB werkt, zie:
http://www.anwb.nl/verzekeringen/autoverzekering

Ik hoop op een reactie.

6 antwoorden

Gesponsorde links
Offline Joel - 28/04/2014 10:59
Avatar van Joel Eigenaar Met de substring functie kun je dit wel inorde krijgen:

http://www.w3schools.com/jsref/jsref_substring.asp

Je zult dan nog wel wat logica moeten schrijven om alle outputs juist te krijgen, aangezien de output niet telkens in hetzelfde formaat is (x-xxx-xx, xx-xx-xx, ...).
Offline marten - 28/04/2014 11:14
Avatar van marten Beheerder
  1. function AdjustKenteken(ptKenteken){
  2. //Deze functie geeft indien mogelijk een geldige kentekencombinatie terug
  3. //ook het 2006-formaat
  4. var fNieuwKenteken;
  5. var iAsciWaarde;
  6. var tResult="";
  7. var tKenteken=ptKenteken;
  8.  
  9. tKenteken = trim(tKenteken);
  10. if (tKenteken!="")
  11. {
  12. tKenteken=tKenteken.toString().toUpperCase();
  13. tKenteken=tKenteken.replace(/-/g, "");
  14. if (tKenteken.length>6)
  15. {
  16. tKenteken=tKenteken.substr(0,6);
  17. }
  18. //-----------------------------------------------------------------------------
  19. //Nu de streepjes eruit zijn en de lengte (indien te lang) is aangepast, moet
  20. //de invoer 6 karakters bevatten. Zoniet, dan gaan we er niets verder aan doen.
  21. //-----------------------------------------------------------------------------
  22.  
  23. if (tKenteken.length==6)
  24. {
  25. fNieuwKenteken = true;
  26. for (var iTeller=2;iTeller <= 4;iTeller++)
  27. {
  28. var charcode = tKenteken.charCodeAt(iTeller);
  29. if (!((charcode>=65) && (charcode<=90)))
  30. {
  31. fNieuwKenteken = false;
  32. break;
  33. }
  34. }
  35. if (fNieuwKenteken)
  36. {
  37. //-----------------------------------------------------------------------------------
  38. //Laatste teken nog controleren, want die is ook bepalend, zoals 09-GG-JJ of 09-GGG-1
  39. //-----------------------------------------------------------------------------------
  40. var charcode = tKenteken.charCodeAt(5);
  41. if (!((charcode >= 48) && (charcode <= 57))) fNieuwKenteken = false;
  42. }
  43. for (var iTeller=0;iTeller<6;iTeller++)
  44. {
  45. if (((charcode >= 48) && (charcode <= 57)) ||((charcode >= 65) && (charcode <= 90)))
  46. {
  47. tResult+=tKenteken.substr(iTeller,1);
  48. if ((iTeller==1) ||
  49. ((iTeller==4) && fNieuwKenteken) ||
  50. ((iTeller==3) && !fNieuwKenteken)
  51. )
  52. tResult+="-";
  53. }
  54. else
  55. {
  56. return "";
  57. }
  58. }
  59. }
  60. }
  61. return tResult;
  62. }
  63.  
  64. //===============
  65. //KENTEKEN MINTEKEN TOEVOEGEN
  66. function KentekenStreep(obj,evt)
  67. {
  68. var charCode = (evt.which) ? evt.which : event.keyCode;
  69. if (charCode != 8) //-- <backspace>
  70. {
  71. if (obj.value.length == 2 || obj.value.length == 5)
  72. {
  73. nextField = 0;
  74. nElements = obj.form.length;
  75. for (i=0; i<nElements; i++)
  76. {
  77. if (obj.form[i].name == obj.name)
  78. {
  79. nextField = i-1;
  80. if (nextField <nElements)
  81. {
  82. nextField++
  83. }
  84. obj.form[nextField].value += '-';
  85. }
  86. }
  87. }
  88. }
  89. }
Offline Jointjeff - 28/04/2014 11:29
Avatar van Jointjeff HTML interesse Zeer bedankt voor de reacties. Het wordt zeer gewaardeerd.

Stel dat ik de functie van Marten wil inzetten, hoe doe ik dit dan het beste. Ik wil het liefst dat dit 'live' gebeurd, dus on.change.

Off-topic: misschien een idee om een doneer optie voor posters toe te voegen ;)
Offline marten - 28/04/2014 14:51 (laatste wijziging 28/04/2014 14:51)
Avatar van marten Beheerder
  1. <input class="kenteken" type="text" name="kenteken" id="nummerplaat" maxlength="8" value="" onblur="this.value = AdjustKenteken(this.value);" onkeydown="if(event.keyCode==13) this.value = AdjustKenteken(this.value);">
Offline Jointjeff - 28/04/2014 15:18
Avatar van Jointjeff HTML interesse Bedankt Marten!

Gek genoeg krijg ik de error 'AdjustKenteken is not defined', zie ook hieronder:
http://jsfiddle.net/S54DU/
Offline marten - 01/05/2014 08:22
Avatar van marten Beheerder Ik was vergeten een functie extra erbij te vermelden die gebruikt wordt in de code:

  1. function trim(sString)
  2. {
  3. while (sString.substring(0,1) == ' ')
  4. {
  5. sString = sString.substring(1, sString.length);
  6. }
  7. while (sString.substring(sString.length-1, sString.length) == ' ')
  8. {
  9. sString = sString.substring(0,sString.length-1);
  10. }
  11. return sString;
  12. }
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.176s