Skip to content

Bibliotek för att validera och formatera olika typer av formulärsdata

Notifications You must be signed in to change notification settings

jop-io/formator.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

formator.js

Formator.js är ett lättviktigt bibliotek (mindre än 1 kilobyte) för att validera och formatera olika typer av formulärsdata. Biblioteket är särskilt användbart där kunder anger data i en köpprocess, tex. vid registrering av kundkonton eller utcheckning i kassor på e-handelssidor.

Användningsområden

Formator.js kan användas i två syften; dels för att validera att forumlärsdata är giltig (korrekt inmatad) samt för att formatera datan i ett standardenligt format. Biblioteket har stöd för att validera och formatera följande typer av inmatad data:

Demo

http://jop.io/projects/formator-js

Installation

<script src="formator.min.js"></script>

Exempel på använding

Samtliga valideringsfunktioner returnerar inmatad data (med formatering) om datan valideras som giltig. I fall datan valideras som ogiltig returneras false.

Mobiltelefonnummer

Mobiltelefonnummer valideras enligt Post- & Telestyrelsens nummerplan för mobiltelefonitjänster. De svenska mobiltelefonitjänsterna inleds med prefixen 70, 72, 73, 76 och 79.

Mobiltelefonnummer vilka valideras som giltiga returneras formaterade. För att välja format på datan som returneras anges en sekundär parameter med ett av följande värden:

  1. DEFAULT = Numeriskt format (standard), NNNNNNNNNN
  2. INT_FORMAT = Internationellt format E.164, +46NNNNNNNNN
  3. NAT_FORMAT = Nationellt format, NNN-NNN NN NN

Numerisk formatering

formator.cellphone("0702112233"); // returnerar 0702112233
formator.cellphone("+460702112233"); // returnerar 0702112233
formator.cellphone("070-211 22 33"); // returnerar 0702112233

Internationell formatering

formator.cellphone("0702112233", "INT_FORMAT"); // returnerar +46702112233
formator.cellphone("+460702112233", "INT_FORMAT"); // returnerar +46702112233
formator.cellphone("070-211 22 33", "INT_FORMAT"); // returnerar +46702112233

Nationell formatering

formator.cellphone("0702112233", "NAT_FORMAT"); // returnerar 070-211 22 33
formator.cellphone("+460702112233", "NAT_FORMAT"); // returnerar 070-211 22 33
formator.cellphone("070-211 22 33", "NAT_FORMAT"); // returnerar 070-211 22 33

Ej giltiga telefonnummer (returnerar false)

formator.cellphone("0710112233"); // returnerar false
formator.cellphone("07021122"); // returnerar false
formator.cellphone("0812345678"); // returnerar false

Postnummer

Postnummer valideras i enlighet med SS 613401:2011 och det Svenska Postnummersystemet.

Postnummer vilka valideras som giltiga returneras formaterade. För att välja format på datan som returneras anges en sekundär parameter med något av följande värden:

  1. DEFAULT = Numeriskt format (standard), NNNNN
  2. NAT_FORMAT = Nationellt format, NNN NN
  3. INT_FORMAT = Internationellt format, SE-NNN NN

Formatering av postnummer vilka valideras som giltiga

formator.postalcode("54100"); // returnerar 54100
formator.postalcode("54100", "NAT_FORMAT"); // returnerar 541 00
formator.postalcode("54100", "INT_FORMAT"); // returnerar SE-541 00

Ej giltiga postnummer (returnerar false)

formator.postalcode("00001"); // returnerar false (ogiltigt värde)
formator.postalcode("49152"); // returnerar false (ogiltig nummerserie)
formator.postalcode("123"); // returnerar false (ogiltigt längd)

Personnummer

Personnummer valideras i enlighet med Folkbokföringslagen 1991:481, § 18 och SKV 704.

Personnummer vilka valideras som giltiga returneras formaterade. För att välja format på datan som returneras anges en sekundär parameter med något av följande värden:

  1. DEFAULT = 12 siffror (standard), ÅÅÅÅMMDDNNNN
  2. SHORT = 10 siffror med skiljetecken, ÅÅMMDD-NNNN

*Skiljetecken är antingen "-" eller "+" beroende på om födelseåret inträffade för mer än 99 år sedan.

Formatering av personnummer vilka valideras som giltiga

formator.personalid("900101-5701"); // returnerar 199001015701
formator.personalid("900101-5701", "SHORT"); // returnerar 900101-5701
formator.personalid("191001011145", "SHORT"); // returnerar 100101+1145

Ej giltiga personnummer (returnerar false)

formator.personalid("900101-5705"); // returnerar false (felaktig kontrollsiffra)
formator.personalid("901301-5701"); // returnerar false (ogiltigt födelsemånad)
formator.personalid("900132-5701"); // returnerar false (ogiltigt födelsedag)

Organisationsnummer

Organisationsnummer valideras i enlighet med Lagen om identitetsbeteckning för juridiska personer (1974:174) och SKV 709.

Organisationsnummer vilka valideras som giltiga returneras formaterade. För att välja format på datan som returneras anges en sekundär parameter med något av följande värden:

  1. DEFAULT = 10 siffror utan skiljetecken (standard), NNNNNNNNNN
  2. DASH = 10 siffror med skiljetecken, NNNNNN-NNNN
formator.organizationid("5562537513"); // returnerar 5562537513
formator.organizationid("5562537513", "DASH"); // returnerar 556253-7513
formator.organizationid("0812345678"); // returnerar false

Momsregistreringsnummer

Momsregistreringsnummer valideras i enlighet skatteverkets riktlinjer för internationella momsregistreringsnummer.

Giltiga momsregistreringsnummer returneras alltid i det internationella formatet SE NNNNNNNNNNNN.

formator.vatid("5562537513"); // returnerar SE 556253751301
formator.vatid("0812345678"); // returnerar false

Bankkortsnummer

Bankkortsnummer valideras som giltiga i enlighet med ISO/IEC 7812-1:2015.

Bankkortsnummer vilka valideras som giltiga returneras formaterade. För att välja format på datan som returneras anges en sekundär parameter med något av följande värden:

  1. DEFAULT = Utan skiljetecken (standard), NNNNNNNNNNNNNNNN
  2. SPACE = Mellanslag (' ') som skiljetecken, NNNN NNNN NNNN NNNN
  3. DASH = Bindestreck ('-') som skiljetecken, NNNN-NNNN-NNNN-NNNN
formator.bankcard("6011643488816290"); // returnerar 6011643488816290
formator.bankcard("5498358809721384", "SPACE"); // returnerar 5498 3588 0972 1384
formator.bankcard("4916314047956685", "DASH"); // returnerar 4916-3140-4795-6685
formator.bankcard("5354007325776612"); // returnerar false (felaktig kontrollsiffra)
formator.bankcard("53540073257"); // returnerar false (felaktig längd)

E-postadresser

E-postadresser valideras som giltiga enligt mönstret *@*.*. Maximal tillåten längd på en e-postadress är 254 tecken, i enlighet med RFC 3696.

E-postadresse vilka valideras som giltiga returneras formaterade. För att välja format på datan som returneras anges en sekundär parameter med något av följande värden:

  1. DEFAULT = Oförändrad, som inmatad e-postadress (standard)
  2. UPPERCASE = VERSAL E-POSTADRESS
  3. LOWERCASE = gemen e-postadress
formator.email("Bill.Gates@microsoft.com"); // returnerar Bill.Gates@microsoft.com
formator.email("bill.gates@microsoft.com", "UPPERCASE"); // returnerar BILL.GATES@MICROSOFT.COM
formator.email("bill.gates@microsoft.com", "LOWERCASE"); // returnerar bill.gates@microsoft.com
formator.email("bill@gates"); // returnerar false
formator.email("bill.g@tes@microsoft.com"); // returnerar false
formator.email("bill.gates@.com"); // returnerar false
formator.email("@microsoft.com"); // returnerar false

Uppdateringar

  • 2017-06-07: Rättning av bugg i algoritmen för Luhn mod 10 för beräkning av kontrollsiffror för organisationsnummer. Tack till Tina Hammar som uppmärksammade detta.

Licens

Formator.js omfattas av licensformen MIT. Varsågod!

About

Bibliotek för att validera och formatera olika typer av formulärsdata

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published