Actions

Using regular expressions/nl: Difference between revisions

From LimeSurvey Manual

No edit summary
(Updating to match new version of source page)
Line 16: Line 16:
=E-mail validatie=
=E-mail validatie=


<source>
<source lang="html">
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
</source>
</source>
Line 24: Line 24:
==Australische postcode==
==Australische postcode==


  <source>/^[0-9]{4}/</source>
  <source lang="html">/^[0-9]{4}/</source>


==Braziliaanse postcode==
==Braziliaanse postcode==


  <source>/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/</source>
  <source lang="html">/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/</source>


==Canadese postcode==
==Canadese postcode==


  <source>/^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/</source>
  <source lang="html">/^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/</source>


==VS postcode==
==VS postcode==


  <source>/^[0-9]{5}([- /]?[0-9]{4})?$/</source>
  <source lang="html">/^[0-9]{5}([- /]?[0-9]{4})?$/</source>


==Verenigd Koninkrijk postcode==
==Verenigd Koninkrijk postcode==


  <source>/^[A-Z][A-Z]?[0-9][A-Z0-9]? ?[0-9][ABDEFGHJLNPQRSTUWXYZ]{2}$/i</source>
  <source lang="html">/^[A-Z][A-Z]?[0-9][A-Z0-9]? ?[0-9][ABDEFGHJLNPQRSTUWXYZ]{2}$/i</source>


Dit is een niet erg goede regex, maar voor een betere validatie zou een veel complexere regex nodig zijn. Meer informatie: [http://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive StackOverflow answer] en [http://en.wikipedia.org/wiki/Talk:Postcodes_in_the_United_Kingdom#Regular_Expressions Wikipedia].
Dit is een niet erg goede regex, maar voor een betere validatie zou een veel complexere regex nodig zijn. Meer informatie: [http://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive StackOverflow answer] en [http://en.wikipedia.org/wiki/Talk:Postcodes_in_the_United_Kingdom#Regular_Expressions Wikipedia].
Line 48: Line 48:
==VS telefoonnummer==
==VS telefoonnummer==


  <source>/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/</source>
  <source lang="html">/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/</source>


of
of


  <source>/^[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{4}[\(\)\.\- ]{0,}$/</source>
  <source lang="html">/^[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{4}[\(\)\.\- ]{0,}$/</source>


De tweede versie zal werken voor alle Canadese en VS telefoonnummers die ook niet numerieke tekens bevat, inclusief
De tweede versie zal werken voor alle Canadese en VS telefoonnummers die ook niet numerieke tekens bevat, inclusief


  <source> . ( ) - (space)</source>
  <source lang="html"> . ( ) - (space)</source>


De volgende telefoonnummers (waarbij 5 voor een willekeurig cijfer staat) zijn dan toegestaan.
De volgende telefoonnummers (waarbij 5 voor een willekeurig cijfer staat) zijn dan toegestaan.
Line 90: Line 90:
PRECIES
PRECIES


<source>/^\(?(?:\+?61|0)(?:(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}|4\)?[ -]?(?:(?:[01][ -]?[0-9]|2[ -]?[0-57-9]|3[ -]?[1-9]|4[ -]?[7-9]|5[ -]?[018])[ -]?[0-9]|3[ -]?0[ -]?[0-5])(?:[ -]?[0-9]){5})$/
<source lang="html">/^\(?(?:\+?61|0)(?:(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}|4\)?[ -]?(?:(?:[01][ -]?[0-9]|2[ -]?[0-57-9]|3[ -]?[1-9]|4[ -]?[7-9]|5[ -]?[018])[ -]?[0-9]|3[ -]?0[ -]?[0-5])(?:[ -]?[0-9]){5})$/
</source>
</source>


Line 96: Line 96:
Niet precies:
Niet precies:


<source>/^(?:\+?61|0)[2-478](?:[ -]?[0-9]){8}$/</source>
<source lang="html">/^(?:\+?61|0)[2-478](?:[ -]?[0-9]){8}$/</source>


===Alle Australische telefoonnummers (alleen vaste, met verplichte gebiedscode)===
===Alle Australische telefoonnummers (alleen vaste, met verplichte gebiedscode)===
Line 102: Line 102:
Precies:
Precies:


<source>/^\(?(?:\+?61|0)(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}$/</source>
<source lang="html">/^\(?(?:\+?61|0)(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}$/</source>




Niet precies:
Niet precies:


<source>/^(?:\+?61|\(?0)[2378]\)?(?:[ -]?[0-9]){8}$/</source>
<source lang="html">/^(?:\+?61|\(?0)[2378]\)?(?:[ -]?[0-9]){8}$/</source>


===Nieuw Zuid Wales vast (gebiedscode optioneel)===
===Nieuw Zuid Wales vast (gebiedscode optioneel)===
Line 113: Line 113:
Precies:
Precies:


<source>/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/</source>


Niet precies:
Niet precies:


<source>/^(?:\(?(?:\+?61|0)2\)?(?:[ -]?[0-9]){7}[0-9]$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)2\)?(?:[ -]?[0-9]){7}[0-9]$/</source>


===Telefoonnummers Victoria en Tasmanië vaste nummers (gebiedscode optioneel)===
===Telefoonnummers Victoria en Tasmanië vaste nummers (gebiedscode optioneel)===
Line 123: Line 123:
Precies:
Precies:


<source>/^(?:\(?(?:\+?61|0)3\)?[ -]?)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])(?:[ -]?[0-9]){6}$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)3\)?[ -]?)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])(?:[ -]?[0-9]){6}$/</source>


Niet precies:
Niet precies:


<source>/^(?:\(?(?:\+?61|0)3\)?(?:[ -]?[0-9]){7}[0-9]$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)3\)?(?:[ -]?[0-9]){7}[0-9]$/</source>


===Queensland vast (gebiedscode optioneel)===
===Queensland vast (gebiedscode optioneel)===
Line 133: Line 133:
Precies:
Precies:


<source>/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/</source>




Niet precies:
Niet precies:


<source>/^(?:\(?(?:\+?61|0)7\)?(?:[ -]?[0-9]){7}[0-9]$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)7\)?(?:[ -]?[0-9]){7}[0-9]$/</source>


===Zuid Australië, Noordelijk Territorium, West Australië vaste telefoonnummers (gebiedscode optioneel)===
===Zuid Australië, Noordelijk Territorium, West Australië vaste telefoonnummers (gebiedscode optioneel)===
Line 144: Line 144:
Precies:
Precies:


<source>/^(?:\(?(?:\+?61|0)8\)?[ -]?)?(?:5[1-4]|6[0-8]|[7-9][0-9])$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)8\)?[ -]?)?(?:5[1-4]|6[0-8]|[7-9][0-9])$/</source>


Niet precies:
Niet precies:


<source>/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/</source>


===Alleen mobiele Australische telefoonnummers===
===Alleen mobiele Australische telefoonnummers===
Line 154: Line 154:
Precies:
Precies:


<source>/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/</source>
<source lang="html">/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/</source>




Niet precies:
Niet precies:


<source>/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/</source>
<source lang="html">/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/</source>


==Belgisch telefoonnummer==
==Belgian phone number==
  <source>/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/</source>
  <source lang="html">/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/</source>
==Belgisch mobiel telefoonnummer==
==Belgian mobile phone number==
  <source>/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/</source>
  <source lang="html">/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/</source>
==Frans telefoonnummer==
==French phone number==
  <source>/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/</source>
  <source lang="html">/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/</source>
==Frans mobiel telefoonnummer==
==French mobile phone number==
  <source>/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/</source>
  <source lang="html">/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/</source>
==Luxemburgs telefoonnummer==
==Luxemburg phone number==
  <source>/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/</source>
  <source lang="html">/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/</source>
==Luxemburgs mobiel telefoonnummer==
==Luxemburg mobile phone number==
  <source>/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/</source>
  <source lang="html">/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/</source>
=Duitse mark (met optionele plus of min)=
=German marks (with optional plus or minus)=
  <source>/^[1-6]{1}[\+|\-]?$/</source>
  <source lang="html">/^[1-6]{1}[\+|\-]?$/</source>
=Leeftijdscontrole=
=Age validation=
Voorbeeld: Leeftijd 20-99
Example: Age 20-99
  <source>/([2-9][0-9])/</source>
  <source lang="html">/([2-9][0-9])/</source>




Voorbeeld: Leeftijd 18-35
Example: Age 18-35
  <source>/(1[8-9]|2[0-9]|3[0-5])/</source>
  <source lang="html">/(1[8-9]|2[0-9]|3[0-5])/</source>




Voorbeeld: Leeftijd 19-65
Example: Age 19-65
  <source>^(1[8-9]|[2-5][0-9]|6[0-5])$</source>
  <source lang="html">/^(1[8-9]|[2-5][0-9]|6[0-5])$/</source>


=Validatie getal=
=Number validation=
==Getallen van 1 tot 99999==
==Numbers from 1 to 99999==
  <source>/^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9])$/</source>
  <source lang="html">/^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9])$/</source>
  <source>/^[1-9][0-9]{0,4}$/ doet hetzelfde als hierboven, maar dan wat sneller</source>
  <source lang="html">/^[1-9][0-9]{0,4}$/ does the same as above but should run a little faster</source>
==Getallen van 1 tot 999, 1.000 tot 999.999 tot 999.999.999==
==Numbers from 1 to 999, 1.000 to 999.999 to 999.999.999==
  <source>/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/</source>
  <source lang="html">/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/</source>
Accepteert getallen van 1 tot 999 1.000 tot 999.999 tot 999.999.999 maar
Accepts numbers from 1 to 999, 1.000 to 999.999 to 999.999.999 but
keurt getallen als 999.1.1 , 94.22.22, 999.1.22, 999.11.1 en 999.1.333 af.
rejects numbers like 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333


==Validatie getal met optioneel een decimaal (prijzen)==
==Number validation with optional decimal (for price)==
Accepteert getallen van 0 tot en met 199, met 2 decimalen optioneel:
Accepts numbers from 0 to 199, with 2 decimal optional:
  <source>/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/</source>
  <source lang="html">/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/</source>




Zorgt voor een getal met 2 decimalen en accepteert getallen van 1.00 tot 999,999,999.00 met een optionele komma voor  duizendtallen/miljoentallen met inbegrip van: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00
Forces two decimal points and accepts numbers from 1.00 to 999,999,999.00 with an optional comma delimiting thousands/millions
maar niet 1,23.00, 12,3.4 of 1234,43.04
including all of the following: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00
  <source>/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>
but not 1,23.00, 12,3.4 or 1234,43.04
Op dezelfde manier: Een getal met 2 decimalen, maar met een "0" voor de komma ",".
  <source lang="html">/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>
  <source>/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>
Similar to the above: Forces two decimal points but accepts a "0" before decimal separator ",".
  <source lang="html">/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>


Hetzelfde als hierboven, maar de twee decimale punten zijn optioneel:
Same as above but the two decimal points are optional:
<source>/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/ </source>
<source lang="html">/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/ </source>


==Maand (1-12)==
==Maand (1-12)==
Line 214: Line 216:
Als je een ingevulde maand wilt valideren:
Als je een ingevulde maand wilt valideren:


  <source>/^[0]*[1-9]$|^[0]*1[0-2]$/</source>
  <source lang="html">/^[0]*[1-9]$|^[0]*1[0-2]$/</source>


=Minimum wijdte (voorbeeld: 3)=
=Minimum wijdte (voorbeeld: 3)=


  <source>/^.{3,}$/</source>
  <source lang="html">/^.{3,}$/</source>


=Valuta=
=Valuta=
Line 224: Line 226:
==VS valuta (dollar teken en centen optioneel)==
==VS valuta (dollar teken en centen optioneel)==


  <source>/^\$?\d+(\.(\d{2}))?$/</source>
  <source lang="html">/^\$?\d+(\.(\d{2}))?$/</source>


Controle op gebruik komma:
Check for comma usage:
<source>/^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/</source>
<source lang="html">/^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/</source>


==Zwitserse prijs==
==Zwitserse prijs==
Line 233: Line 235:
Een getal met twee cijfers na de decimale punt met het laatste cijfer ongelijk 0 en 5:
Een getal met twee cijfers na de decimale punt met het laatste cijfer ongelijk 0 en 5:


  <source>/^(\d+)(\.\d(05)?)?$/</source>
  <source lang="html">/^(\d+)(\.\d(05)?)?$/</source>


=Valideren score=
=Valideren score=
Line 239: Line 241:
==1-10==
==1-10==


  <source>/^[1-9]{1}$|^10$/</source>
  <source lang="html">/^[1-9]{1}$|^10$/</source>


==1-100==
==1-100==


  <source>/^[1-9]?[0-9]{1}$|^100$/</source>
  <source lang="html">/^[1-9]?[0-9]{1}$|^100$/</source>


=Tekst validatie=
=Tekst validatie=
Line 251: Line 253:
De volgende test voor minstens 1 woord per regel voor minstens 3 regels en maximaal 10 regels.
De volgende test voor minstens 1 woord per regel voor minstens 3 regels en maximaal 10 regels.


  <source>/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){2,10}/is</source>
  <source lang="html">/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){2,10}/is</source>


Als je 5 woorden per regel wilt, dan kun je de eerste en laatste asterisk(*) wijzigen in {4,} bijvoorbeeld:
Als je 5 woorden per regel wilt, dan kun je de eerste en laatste asterisk(*) wijzigen in {4,} bijvoorbeeld:


  <source>/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is</source>
  <source lang="html">/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is</source>


Als je een of meer woorden wilt per regel wilt tussen de 1 en 5 regels, dan kun je de inhoud van de laatste accolades wijzigen in '''0,4''' (je gebruikt 0 om de eerste regel al te vergelijken).
Als je een of meer woorden wilt per regel wilt tussen de 1 en 5 regels, dan kun je de inhoud van de laatste accolades wijzigen in '''0,4''' (je gebruikt 0 om de eerste regel al te vergelijken).


  <source>/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){0,4}/is</source>
  <source lang="html">/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){0,4}/is</source>


==Woordentellen==
==Woordentellen==


  <source>De volgende beperkt het aantal toegestane woorden tot minimaal 1 en maximaal 200
  The following restricts the number of words allowed to a minimum of 1 and a maximum of 200


/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/</source>
<source lang="html">/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/</source>


  <source>Om het minimum te wijzigen, wijzig de 0 in {0,199}
  To increase the minimum change the zero part of {0,199}


Om het maximum te wijzigen, wijzig de 199 in {0,199}</source>
To increase or decrease the maximum change the "199" part of {0,199}


=Tijd validatie=
=Tijd validatie=
Line 277: Line 279:
<source>De volgende drie validatie-strings zijn voor de 24 uur tijdsaanduiding voor respectievelijk zonder seconden, optioneel seconden en verplicht met seconden.
<source>De volgende drie validatie-strings zijn voor de 24 uur tijdsaanduiding voor respectievelijk zonder seconden, optioneel seconden en verplicht met seconden.


<source>/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/</source>
<source lang="html">/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/</source>


<source>/^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/</source>
<source lang="html">/^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/</source>


<source>/^(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/</source>
<source lang="html">/^(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/</source>




Line 287: Line 289:
De volgende drie matchen 12 uur tijd, als boven met seconden, seconden optioneel en seconden verplicht
De volgende drie matchen 12 uur tijd, als boven met seconden, seconden optioneel en seconden verplicht


<source>/^(?">00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))$/</source>
<source lang="html">/^(?">00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))$/</source>


<source>/^(?:00:[0-5][0-9](?::[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?::[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?::[0-5][0-9])? (?:pm|PM))$/</source>
<source lang="html">/^(?:00:[0-5][0-9](?::[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?::[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?::[0-5][0-9])? (?:pm|PM))$/</source>


<source>/^(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))$/</source>
<source lang="html">/^(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))$/</source>




Line 297: Line 299:
De volgende drie matchen 12 of 24-uurs tijdnotatie zoals hierboven met seconden,  seconden optioneel en seconden verplicht
De volgende drie matchen 12 of 24-uurs tijdnotatie zoals hierboven met seconden,  seconden optioneel en seconden verplicht


<source>/^(?:(?:00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9])$/</source>
<source lang="html">/^(?:(?:00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9])$/</source>


<source>/^(?:(?:00:[0-5][0-9](?[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?[0-5][0-9])? (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9](?[0-5][0-9])?)$/</source>
<source lang="html">/^(?:(?:00:[0-5][0-9](?[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?[0-5][0-9])? (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9](?[0-5][0-9])?)$/</source>


<source>/^(?:(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$/</source>
<source lang="html">/^(?:(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$/</source>


=VS=
=VS=


Om een staat te valideren (voorbeeld is Texas):
To validate for one state use the following (example is Texas):
*TX alleen hoofdletters = <source>/^(TX)$/</source>
*TX uppercase only = <source lang="html">/^(TX)$/</source>
*tx alleen kleine letters = <source>/^(tx)$/</source>
*tx lowercase only = <source lang="html">/^(tx)$/</source>
*TX hoofdletters of kleine letters = <source>/^([T|t][X|x])$/</source>
*TX upper or lowercase = <source lang="html">/^([T|t][X|x])$/</source>


=Schuttingtaal filter=
=Schuttingtaal filter=
Line 314: Line 316:
Om schuttingtaal in antwoorden te verwijderen:
Om schuttingtaal in antwoorden te verwijderen:


  <source>/^(?i)((?!\bvulhiereenschuttingwoordin\b).)*$(?-i)/</source>
  <source lang="html">/^(?i)((?!\bENTERPROFANITYHERE\b).)*$(?-i)/</source>


Vervang "SCHUTTINGTAAL" door dit woord.
Vervang "SCHUTTINGTAAL" door dit woord.


De \b zorgt ervoor dat woorden als "borstel" en "konterfeitsel" geaccepteerd worden als je "borst" en "kont" als schuttingtaal ziet. Dit werkt ook als je andere woorden, namen, enz. uit antwoorden wilt verwijderen.
De \b zorgt ervoor dat woorden als "borstel" en "konterfeitsel" geaccepteerd worden als je "borst" en "kont" als schuttingtaal ziet. Dit werkt ook als je andere woorden, namen, enz. uit antwoorden wilt verwijderen.

Revision as of 16:10, 26 February 2018

Een reguliere expressie moet beginnen en eindigen met een slash ("/"). Een bibliotheek met reguliere expressies kun je vinden op http://www.regexlib.net/. Kijk wel of in deze "patterns" de slashes al toegevoegd zijn.

Om je reguliere expressie te testen kun je dit gebruiken: regex tester.

Voeg hier goedwerkende reguliere expressies toe!

Voorbeelden (elke voorbeeld is één regel):

Belangrijk: Reguliere expressies in condities

Als je de reguliere expressies in de conditie editor gebruikt, voeg dan NIET de beide slashes toe.

E-mail validatie

/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/

Postcode

Australische postcode

/^[0-9]{4}/

Braziliaanse postcode

/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/

Canadese postcode

/^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/

VS postcode

/^[0-9]{5}([- /]?[0-9]{4})?$/

Verenigd Koninkrijk postcode

/^[A-Z][A-Z]?[0-9][A-Z0-9]? ?[0-9][ABDEFGHJLNPQRSTUWXYZ]{2}$/i

Dit is een niet erg goede regex, maar voor een betere validatie zou een veel complexere regex nodig zijn. Meer informatie: StackOverflow answer en Wikipedia.

Telefoonnummer

VS telefoonnummer

/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/

of

/^[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{4}[\(\)\.\- ]{0,}$/

De tweede versie zal werken voor alle Canadese en VS telefoonnummers die ook niet numerieke tekens bevat, inclusief

 . ( ) - (space)

De volgende telefoonnummers (waarbij 5 voor een willekeurig cijfer staat) zijn dan toegestaan.

  • (555)555 5555
  • 555.555.5555
  • 555 555 5555
  • (555)-555-5555
  • 555-555-5555
  • 555555555

Australisch telefoonnummer

De volgende voorbeelden dekken alle mogelijke Australische mobiele en vaste telefoonnummers inclusief het landnummer "+61":

  • (02) 9123 6535
  • 03 1234-5345
  • 0412 345 678
  • +61 2 3456 789

Maar niet:

  • 234 3450 234
  • a234 534 3432
  • 134567
  • 123456789013

Haakjes, spaties en streepjes worden overgeslagen.

De 'Precies' versie test de eerste 4 of 5 cijfers in een getal om er zeker van te zijn dat het een geldig Australisch telefoonnummer is.

De 'Niet precies' controleert alleen het eerste en tweede cijfer, er worden dus ongeldige telefoonnummers toegestaan.

Alle Australische telefoonnummers (gebiedscode verplicht)

PRECIES

/^\(?(?:\+?61|0)(?:(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}|4\)?[ -]?(?:(?:[01][ -]?[0-9]|2[ -]?[0-57-9]|3[ -]?[1-9]|4[ -]?[7-9]|5[ -]?[018])[ -]?[0-9]|3[ -]?0[ -]?[0-5])(?:[ -]?[0-9]){5})$/


Niet precies:

/^(?:\+?61|0)[2-478](?:[ -]?[0-9]){8}$/

Alle Australische telefoonnummers (alleen vaste, met verplichte gebiedscode)

Precies:

/^\(?(?:\+?61|0)(?:2\)?[ -]?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])|3\)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])|7\)?[ -]?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)|8\)?[ -]?(?:5[ -]?[1-4]|6[ -]?[0-8]|[7-9][ -]?[0-9]))(?:[ -]?[0-9]){6}$/


Niet precies:

/^(?:\+?61|\(?0)[2378]\)?(?:[ -]?[0-9]){8}$/

Nieuw Zuid Wales vast (gebiedscode optioneel)

Precies:

/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/

Niet precies:

/^(?:\(?(?:\+?61|0)2\)?(?:[ -]?[0-9]){7}[0-9]$/

Telefoonnummers Victoria en Tasmanië vaste nummers (gebiedscode optioneel)

Precies:

/^(?:\(?(?:\+?61|0)3\)?[ -]?)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])(?:[ -]?[0-9]){6}$/

Niet precies:

/^(?:\(?(?:\+?61|0)3\)?(?:[ -]?[0-9]){7}[0-9]$/

Queensland vast (gebiedscode optioneel)

Precies:

/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/


Niet precies:

/^(?:\(?(?:\+?61|0)7\)?(?:[ -]?[0-9]){7}[0-9]$/

Zuid Australië, Noordelijk Territorium, West Australië vaste telefoonnummers (gebiedscode optioneel)

Precies:

/^(?:\(?(?:\+?61|0)8\)?[ -]?)?(?:5[1-4]|6[0-8]|[7-9][0-9])$/

Niet precies:

/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/

Alleen mobiele Australische telefoonnummers

Precies:

/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/


Niet precies:

/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/

Belgian phone number

/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/

Belgian mobile phone number

/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/

French phone number

/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/

French mobile phone number

/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/

Luxemburg phone number

/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/

Luxemburg mobile phone number

/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/

German marks (with optional plus or minus)

/^[1-6]{1}[\+|\-]?$/

Age validation

Example: Age 20-99

/([2-9][0-9])/


Example: Age 18-35

/(1[8-9]|2[0-9]|3[0-5])/


Example: Age 19-65

/^(1[8-9]|[2-5][0-9]|6[0-5])$/

Number validation

Numbers from 1 to 99999

/^([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9])$/
/^[1-9][0-9]{0,4}$/ does the same as above but should run a little faster

Numbers from 1 to 999, 1.000 to 999.999 to 999.999.999

/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/

Accepts numbers from 1 to 999, 1.000 to 999.999 to 999.999.999 but rejects numbers like 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333

Number validation with optional decimal (for price)

Accepts numbers from 0 to 199, with 2 decimal optional:

/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/


Forces two decimal points and accepts numbers from 1.00 to 999,999,999.00 with an optional comma delimiting thousands/millions including all of the following: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00 but not 1,23.00, 12,3.4 or 1234,43.04

/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/

Similar to the above: Forces two decimal points but accepts a "0" before decimal separator ",".

/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/

Same as above but the two decimal points are optional:

/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/

Maand (1-12)

Als je een ingevulde maand wilt valideren:

/^[0]*[1-9]$|^[0]*1[0-2]$/

Minimum wijdte (voorbeeld: 3)

/^.{3,}$/

Valuta

VS valuta (dollar teken en centen optioneel)

/^\$?\d+(\.(\d{2}))?$/

Check for comma usage:

/^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/

Zwitserse prijs

Een getal met twee cijfers na de decimale punt met het laatste cijfer ongelijk 0 en 5:

/^(\d+)(\.\d(05)?)?$/

Valideren score

1-10

/^[1-9]{1}$|^10$/

1-100

/^[1-9]?[0-9]{1}$|^100$/

Tekst validatie

Meerdere korte vrije teksten ondersteunt nu geen minimum of maximum aantal antwoorden. Een alternatief is een lang vrije tekst te gebruiken met een regex.

De volgende test voor minstens 1 woord per regel voor minstens 3 regels en maximaal 10 regels.

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){2,10}/is

Als je 5 woorden per regel wilt, dan kun je de eerste en laatste asterisk(*) wijzigen in {4,} bijvoorbeeld:

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is

Als je een of meer woorden wilt per regel wilt tussen de 1 en 5 regels, dan kun je de inhoud van de laatste accolades wijzigen in 0,4 (je gebruikt 0 om de eerste regel al te vergelijken).

/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){0,4}/is

Woordentellen

The following restricts the number of words allowed to a minimum of 1 and a maximum of 200
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
To increase the minimum change the zero part of {0,199}

To increase or decrease the maximum change the "199" part of {0,199}

Tijd validatie

Er zijn meerdere formaten voor de tijdsweergave. Je hebt de 12-uursweergave en de 24-uursweergave. Met of zonder seconden. Je kunt het vraagtype datum gebruiken (dat kan ook de tijd bepalen) of het vraagtype "korte vrije tekst" gebruiken, met een van de onderstaande reguliere expressies:

De volgende drie validatie-strings zijn voor de 24 uur tijdsaanduiding voor respectievelijk zonder seconden, optioneel seconden en verplicht met seconden.

<source lang="html">/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/
/^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/
/^(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/


De volgende drie matchen 12 uur tijd, als boven met seconden, seconden optioneel en seconden verplicht

/^(?">00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))$/
/^(?:00:[0-5][0-9](?::[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?::[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?::[0-5][0-9])? (?:pm|PM))$/
/^(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))$/


De volgende drie matchen 12 of 24-uurs tijdnotatie zoals hierboven met seconden, seconden optioneel en seconden verplicht

/^(?:(?:00:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9])$/
/^(?:(?:00:[0-5][0-9](?[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?[0-5][0-9])? (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9](?[0-5][0-9])?)$/
/^(?:(?:00:[0-5][0-9]:[0-5][0-9] (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9]:[0-5][0-9] (?:[ap]m|[AP]M)|12:[0-5][0-9]:[0-5][0-9] (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$/

VS

To validate for one state use the following (example is Texas):

  • TX uppercase only =
    /^(TX)$/
    
  • tx lowercase only =
    /^(tx)$/
    
  • TX upper or lowercase =
    /^([T|t][X|x])$/
    

Schuttingtaal filter

Om schuttingtaal in antwoorden te verwijderen:

/^(?i)((?!\bENTERPROFANITYHERE\b).)*$(?-i)/

Vervang "SCHUTTINGTAAL" door dit woord.

De \b zorgt ervoor dat woorden als "borstel" en "konterfeitsel" geaccepteerd worden als je "borst" en "kont" als schuttingtaal ziet. Dit werkt ook als je andere woorden, namen, enz. uit antwoorden wilt verwijderen.