Actions

Using regular expressions/nl: Difference between revisions

From LimeSurvey Manual

(Updating to match new version of source page)
No edit summary
Line 4: Line 4:
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.
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: [http://www.regexlib.net/RETester.aspx regex tester].
To test your regex you can [http://www.regexlib.net/RETester.aspx use this regex tester].


''Voeg goed werkende reguliere expressies hier toe!''
''Voeg goed werkende reguliere expressies hier toe!''
Line 86: Line 86:
Haakjes, spaties en streepjes worden overgeslagen.
Haakjes, spaties en streepjes worden overgeslagen.


  <nowiki>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.
  The 'VERY PRECISE' versions listed here match against the first four or five digits in a number to ensure that they are valid Australian numbers.


De 'NIET PRECIES' controleert alleen het eerste en tweede cijfer, er worden dus ongeldige telefoonnummers toegestaan.</nowiki>
The 'NOT VERY PRECISE' only match against the first and second digit so may allow invaid numbers.


===Alle Australische telefoonnummers (gebiedscode verplicht)===
===Alle Australische telefoonnummers (gebiedscode verplicht)===


  PRECIES
  VERY PRECISE


<nowiki>/^\(?(?:\+?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})$/</nowiki>
<nowiki>/^\(?(?:\+?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})$/</nowiki>
Line 102: Line 102:
===Alle Australische telefoonnummers (alleen vaste, met verplichte gebiedscode)===
===Alle Australische telefoonnummers (alleen vaste, met verplichte gebiedscode)===


  PRECIES
  VERY PRECISE


<nowiki>/^\(?(?:\+?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}$/</nowiki>
<nowiki>/^\(?(?:\+?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}$/</nowiki>
Line 112: Line 112:
===Nieuw Zuid Wales vast (gebiedscode optioneel)===
===Nieuw Zuid Wales vast (gebiedscode optioneel)===


  PRECIES
  VERY PRECISE


<nowiki>/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/</nowiki>
<nowiki>/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/</nowiki>
Line 118: Line 118:
NIET PRECIES
NIET PRECIES


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


===Telefoonnummers Victoria en Tasmanië vaste nummers (gebiedscode optioneel)===
===Telefoonnummers Victoria en Tasmanië vaste nummers (gebiedscode optioneel)===


  PRECIES
  VERY PRECISE


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


NIET PRECIES
NIET PRECIES
Line 132: Line 132:
===Queensland vast (gebiedscode optioneel)===
===Queensland vast (gebiedscode optioneel)===


  PRECIES
  VERY PRECISE


<nowiki>/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/</nowiki>
<nowiki>/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/</nowiki>
Line 142: Line 142:
===Zuid Australië, Noordelijk Territorium, West Australië vaste telefoonnummers (gebiedscode optioneel)===
===Zuid Australië, Noordelijk Territorium, West Australië vaste telefoonnummers (gebiedscode optioneel)===


  PRECIES
  VERY PRECISE


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


NIET PRECIES
NIET PRECIES
Line 152: Line 152:
===Alleen mobiel===
===Alleen mobiel===


  PRECIES
  VERY PRECISE


/^(?:\+?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}$/
<nowiki>/^(?:\+?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}$/</nowiki>


NIET PRECIES
NIET PRECIES
Line 160: Line 160:
<nowiki>/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/</nowiki>
<nowiki>/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/</nowiki>


==Belgisch telefoonnummer==
==Belgian phone number==
  <nowiki>/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/</nowiki>
  <nowiki>/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/</nowiki>
==Belgisch mobiel telefoonnummer==
==Belgian mobile phone number==
  <nowiki>/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/</nowiki>
  <nowiki>/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/</nowiki>
==Frans telefoonnummer==
==French phone number==
  <nowiki>/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/</nowiki>
  <nowiki>/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/</nowiki>
==Frans mobiel telefoonnummer==
==French mobile phone number==
  <nowiki>/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/</nowiki>
  <nowiki>/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/</nowiki>
==Luxemburgs telefoonnummer==
==Luxemburg phone number==
  <nowiki>/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/</nowiki>
  <nowiki>/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/</nowiki>
==Luxemburgs mobiel telefoonnummer==
==Luxemburg mobile phone number==
  <nowiki>/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/</nowiki>
  <nowiki>/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/</nowiki>
=Duitse Marken (met optioneel plus of min)=
=German marks (with optional plus or minus)=
  <nowiki>/^[1-6]{1}[\+|\-]?$/</nowiki>
  <nowiki>/^[1-6]{1}[\+|\-]?$/</nowiki>
=Leeftijd validatie=
=Age Validation=
===Voorbeeld: Leeftijd 20-99===
===Example: Age 20-99===
  <nowiki>/([2-9][0-9])/</nowiki>
  <nowiki>/([2-9][0-9])/</nowiki>
===Voorbeeld: Leeftijd 18-35===
===Example: Age 18-35===
  <nowiki>/(1[8-9]|2[0-9]|3[0-5])/</nowiki>
  <nowiki>/(1[8-9]|2[0-9]|3[0-5])/</nowiki>
===Voorbeeld: Leeftijd 19-65===
===Example: Age 19-65===
  <nowiki>^(1[8-9]|[2-5][0-9]|6[0-5])$</nowiki>
  <nowiki>^(1[8-9]|[2-5][0-9]|6[0-5])$</nowiki>
=Getal validatie=
=Number validation=
==Getal van 1 tot 99999==
==Numbers from 1 to 99999==
  <nowiki>/^([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])$/</nowiki>
  <nowiki>/^([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])$/</nowiki>
  <nowiki>/^[1-9][0-9]{0,4}$/ hetzelfde als boven, misschien iets sneller</nowiki>
  <nowiki>/^[1-9][0-9]{0,4}$/ does the same as above but should run a little faster</nowiki>
==Getal 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==
  <nowiki>/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/
  <nowiki>/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/
accepteert getallen van 1 tot 999, 1.000 tot 999.999 tot 999.999.999 maar weigert
accepts numbers from 1 to 999, 1.000 to 999.999 to 999.999.999 but
999.1.1, 94.22.22, 999.1.22, 999.11.1, 999.1.333</nowiki>
rejects numbers like 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333</nowiki>
==Nummer validatie met optionele decimaal (voor een prijs)==
==Number validation with optional decimal (for price)==
  <nowiki>/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/ accepteert getallen van 0 tot 199, met 2 optionele decimalen</nowiki>
  <nowiki>/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/ accepts numbers from 0 to 199, with 2 decimal optional</nowiki>
  <nowiki>
  <nowiki>
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/
forceert 2 decimalen getallen van 1.00 tot 999,999,999.00 met een optionele komma en duizendtal teken, staat toe o.a: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00
forces two decimal points
maar niet 1,23.00, 12,3.4 en  1234,43.04</nowiki>
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</nowiki>
  <nowiki>
  <nowiki>
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/ gelijk als vorige, maar de 2 decimalen zijn nu optioneel</nowiki>
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/ same as above but the two decimal points are optional</nowiki>


==Maand (1-12)==
==Maand (1-12)==
Line 242: Line 244:
  <nowiki>/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is</nowiki>
  <nowiki>/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is</nowiki>


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).
If you wanted one or more words per line on between 1 and 5 lines, you can change the content of the last curley braces to '''0,4''' (note you use 0 because you're already matching the first line).


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

Revision as of 21:56, 14 January 2014

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.

To test your regex you can use this regex tester.

Voeg goed werkende reguliere expressies hier toe!

Voorbeelden (elke voorbeeld is één regel):

BELANGRIJK: Reguliere expressie in conditie

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})/

De bovenstaande regex zal geen e-mailadres met "+" valideren, wat wel is toegestaan en wordt aanbevolen door Gmail. Een versie die de "+" wel toestaat:

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

Dit is volgens mij beter dan het origineel (ook omdat er "start van string" en "eind van string" tekens zijn toegevoegd), maar het is niet perfect. Het staat ook abc+++defg@somemail.office.com toe, de regex zou eigenlijk zo moeten zijn dat er maar een "+" teken is toegestaan.

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 Postal Code

/^[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 niet een 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.

The 'VERY PRECISE' versions listed here match against the first four or five digits in a number to ensure that they are valid Australian numbers.

The 'NOT VERY PRECISE' only match against the first and second digit so may allow invaid numbers.

Alle Australische telefoonnummers (gebiedscode verplicht)

VERY PRECISE

/^\(?(?:\+?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)

VERY PRECISE

/^\(?(?:\+?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)

VERY PRECISE

/^(?:\(?(?:\+?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)

VERY PRECISE

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

Queensland vast (gebiedscode optioneel)

VERY PRECISE

/^(?:\(?(?:\+?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)

VERY PRECISE

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

NIET PRECIES

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

Alleen mobiel

VERY PRECISE

/^(?:\+?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)

/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/ accepts numbers from 0 to 199, with 2 decimal optional

/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/
forces two decimal points
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})?$/ same as above but the two decimal points are optional

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}]]?$/

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

If you wanted one or more words per line on between 1 and 5 lines, you can change the content of the last curley braces to 0,4 (note you use 0 because you're already matching the first line).

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

Woordentellen

De volgende beperkt het aantal toegestane woorden tot minimaal 1 en maximaal 200

/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
Om het minimum te wijzigen, wijzig de 0 in {0,199}

Om het maximum te wijzigen, wijzig de 199 in {0,199}

Tijd validatie

Er zijn meerdere formaten voor de tijdsweergave. Je hebt de 12-uursweergave en de 24-uursweergave. Met of zonder seconden. Nu, 6-4-2009, versie v1.80plus, is er geen vraagtype tijd. Je moet het vraagtype "kort vrije tekst" gebruiken, met een van de 9 onderstaande reguliere expressies:

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

/^(?:[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]$/~/pp<span style="color:pp~De volgende drie zijn voor de  12 uur tijdsaanduiding, net als boven met seconden, optioneel met seconden en met verplicht seconden

/^(?">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))$/~/pp</span>pp~De volgende drie zijn voor zowel de 12 als 24 uuraanduiding net als boven met seconden, optioneel met seconden en met verplicht seconden

/^(?:(?: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](?<center>[0-5][0-9])? (?:am|AM)|(?:0[1-9]|1[01]):[0-5][0-9](?</center>[0-5][0-9])? (?:[ap]m|[AP]M)|12:[0-5][0-9](?<center>[0-5][0-9])? (?:pm|PM))|(?:[01][0-9]|2[0-3]):[0-5][0-9](?</center>[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 Staten

Om voor een staat te valideren (voorbeeld is Texas):

  • TX alleen hoofdletters = /^(TX)$/
  • tx alleen kleine letters = /^(tx)$/
  • TX hoofdletters of kleine letters = /^([T|t][X|x])$/

Schuttingtaal filter

Om schuttingtaal in antwoorden te verwijderen:

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

Vervang "SCHUTTINGTAAL" met het woord dat u uit de antwoorden wilt filteren.

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.