Actions

Using regular expressions/de: Difference between revisions

From LimeSurvey Manual

No edit summary
No edit summary
 
(134 intermediate revisions by 3 users not shown)
Line 4: Line 4:
Reguläre Ausdrücke müssen am Anfang und Ende mit einem Schrägstrich ("/") umschlossen sein. Sie finden eine gute Bibliothek mit regulären Ausdrücken auf http://www.regexlib.net/. Diese Ausdrücke werden fast alle funktionieren, wenn Sie diese mit dem Schrägstrich einschließen.
Reguläre Ausdrücke müssen am Anfang und Ende mit einem Schrägstrich ("/") umschlossen sein. Sie finden eine gute Bibliothek mit regulären Ausdrücken auf http://www.regexlib.net/. Diese Ausdrücke werden fast alle funktionieren, wenn Sie diese mit dem Schrägstrich einschließen.


Um Ihre RegEx zu testen, können Sie [http://www.regexlib.net/RETester.aspx diesen RegEx-Tester] verwenden.
Um Ihre RegEx zu testen, können Sie [https://regex101.com/ diesen RegEx-Tester] verwenden.


"Bitte fügen Sie erfolgreich getestet reguläre Ausdrücke dieser Seite hinzu!"
{{Hinweis|Um diesen Wiki-Bereich zu verbessern, bitten wir Sie, Ihre erfolgreich getesteten regulären Ausdrücke hinzuzufügen, um den neuen (potenziellen) Benutzern von LimeSurvey ein besseres Verständnis dieser Funktion zu vermitteln.}}


Beispiele (beachten Sie, dass dies alles Einzeiler sind):
{{Alert|title=Achtung|text= Bitte beachten Sie, dass alle folgenden Beispiele in einer Zeile geschrieben sind!}}
 
 
=Wichtig: Reguläre Ausdrücke in Bedingungen=


=BESONDERER HINWEIS: Reguläre Ausdrücke in Bedingungen=


Beachten Sie, dass bei der Verwendung von regulären Ausdrücken im Bedingungseditor, der Anfangs-/Endschrägstrich NICHT benutzt werden darf.
Beachten Sie, dass bei der Verwendung von regulären Ausdrücken im Bedingungseditor, der Anfangs-/Endschrägstrich NICHT benutzt werden darf.


=E-Mail-Validierung=
=E-Mail-Validierung=


<source>
 
Update (12/2018): Da Domänennamen heutzutage nicht nur Sonderzeichen wie „ü“ enthalten können, sondern auch mehr als 3 Zeichen als Domänennamen wie .''tech'' oder .''company'' verwenden, prüft der folgende E-Mail-Regex nur, ob „@“ und „.“ existiert innerhalb der eingegebenen E-Mail-Adresse.
<source lang="html">
/^.+?@.+?\..+$/
</source>
 
Wenn Sie eine Adresse pro Zeile validieren möchten, gilt in einem mehrzeiligen Langtextfeld:
<source lang="html">
/^(((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(\r\n)?\n?)+)*)$/
</source>
 
Bei dieser veralteten Regex ist der Domainname auf 3 Zeichen beschränkt, was nicht alle verfügbaren Domains abdeckt:
<source lang="html">  
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
</source>
</source>
Line 22: Line 37:
=Postleitzahlen=
=Postleitzahlen=


==Australische Postleitzahlen==
==Australische Postleitzahlen:==
 
<source lang="html">/^[0-9]{4}/</source>
 
==Brasilianische Postleitzahlen==
 
<source lang="html">/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/</source>
 
==Kanadische Postleitzahlen==
 
<source lang="html">/^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/</source>
 
==US-Postleitzahlen==
 
<source lang="html">/^[0-9]{5}([- /]?[0-9]{4})?$/</source>


<nowiki>/^[0-9]{4}/</nowiki>
Damit die Postleitzahl mit Null beginnt, verwenden Sie:


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


<nowiki>/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/</nowiki>
==UK Postleitzahlen==


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


<nowiki>/^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/</nowiki>
Beachten Sie, dass dies nicht sehr genau ist und eine genauere Validierung viel komplexer ist. Weitere Informationen finden Sie beispielsweise unter [https://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive StackOverflow-Antwort] und [https://en.wikipedia.org/wiki/Talk:Postcodes_in_the_United_Kingdom#Regular_Expressions Wikipedia]. Information.


==US Postleitzahlen:==
==Französische Postleitzahlen==  


<nowiki>/^[0-9]{5}([- /]?[0-9]{4})?$/</nowiki>
<source lang="html">/(^[0-8]\d\d{3}$)|(^9[0-5]\d{3}$)|(^97[1-6]\d{2}$)| (^98[46-8]\d{2}$)/</source>


==UK Postleitzahlen:==
Der obige Ausdruck ist sehr präzise und prüft, ob das französische Departement existiert (erste zwei Ziffern), einschließlich überseeischer Departements und überseeischer Gebiete (DOM-TOM).


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


Note that this is not very exact, and a more exact validation is much more complex.  For example, see [http://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive StackOverflow answer] and [http://en.wikipedia.org/wiki/Talk:Postcodes_in_the_United_Kingdom#Regular_Expressions Wikipedia] for more information.
=Telefonnummern=


=Phone numbers=


==US phone numbers==
==US-Telefonnummern==


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


or
oder


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


This second option will match all phone Canadian and US phone numbers that include non-digit symbols including
Mit dieser zweiten Option werden alle kanadischen und US-amerikanischen Telefonnummern abgeglichen, die nicht-stellige Symbole enthalten, einschließlich:


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


This will allow you to match phone numbers which resemble below.
Dadurch können Sie Telefonnummern zuordnen, die wie folgt aussehen:
*(555)555 5555
*(555)555 5555
*555.555.5555
*555.555.5555
Line 66: Line 93:
*555555555
*555555555


==Australische Telefonnummern:==
==Australische Telefonnummern==


The following patterns match all various Australian mobile and landline phone numbers including with "+61" country prefix eg:
Die folgenden Muster stimmen mit allen verschiedenen australischen Mobil- und Festnetznummern überein, auch mit der Ländervorwahl „+61“:
*(02) 9123 6535
*(02) 9123 6535
*03 1234-5345
*03 1234-5345
Line 74: Line 101:
*+61 2 3456 789
*+61 2 3456 789


But not:
Aber nicht:
* 234 3450 234
* 234 3450 234
*a234 534 3432
*a234 534 3432
Line 82: Line 109:
Klammern, Leerzeichen und Bindestriche werden ignoriert.
Klammern, Leerzeichen und Bindestriche werden ignoriert.


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.
Die hier aufgeführten „Sehr präzise:“-Versionen gleichen die ersten vier oder fünf Ziffern einer Zahl ab, um sicherzustellen, dass es sich um gültige australische Zahlen handelt.


The 'Not very precise:' only match against the first and second digit so may allow invaid numbers.
Die Angabe „Nicht sehr präzise:“ stimmt nur mit der ersten und zweiten Ziffer überein und lässt daher möglicherweise ungültige Zahlen zu.


===All Australian phone numbers (mobile and landline - area code required)===
===Alle australischen Telefonnummern (Mobil- und Festnetz – Vorwahl erforderlich)===


Very precise:
Sehr präzise:


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


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


Not very precise:
===Alle australischen Telefonnummern (nur Festnetz – Vorwahl erforderlich)===


<source>/^(?:\+?61|0)[2-478](?:[ -]?[0-9]){8}$/</source>
Sehr präzise:


===All Australian phone numbers (landlines only - area code required)===
<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>


Very precise:
Nicht sehr präzise:


<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)[2378]\)?(?:[ -]?[0-9]){8}$/</source>


===Festnetznummern für New South Wales (Vorwahl optional)===


Not very precise:
Sehr präzise:


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


===New South Wales landline phone numbers (area code optional)===
Nicht sehr präzise:


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


<source>/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/</source>
===Viktorianische und tasmanische Festnetznummern (Vorwahl optional)===


Not very precise:
Sehr präzise:


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


===Victorian and Tasmanian landline phone numbers (area code optional)===
Nicht sehr präzise:


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


<source>/^(?:\(?(?:\+?61|0)3\)?[ -]?)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])(?:[ -]?[0-9]){6}$/</source>
===Festnetznummern in Queensland (Vorwahl optional)===


Not very precise:
Sehr präzise:


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


===Queensland landline phone numbers (area code optional)===
Nicht sehr präzise:


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


<source>/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/</source>
===Festnetznummern für Südaustralien, Northern Territory, Westaustralien (Vorwahl optional)===


Sehr präzise:


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


<source>/^(?:\(?(?:\+?61|0)7\)?(?:[ -]?[0-9]){7}[0-9]$/</source>
Nicht sehr präzise:


===South Australia, Northern Territory, Western Australia landline phone numbers (area code optional)===
<source lang="html">/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/</source>


Very precise:
===Nur australische Mobiltelefonnummern===


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


Not very precise:
<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>


<source>/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/</source>
Nicht sehr präzise:


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


Very precise:
==Belgische Telefonnummer==
<source lang="html"> /^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/</source>
==Belgische Mobiltelefonnummer==
<source lang="html"> /^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/</source>
==Französische Telefonnummer==
<source lang="html"> /^((\+|00)33\s?|0)[1-59](\s?\d{2}){4}$/</source>
==Französische Mobiltelefonnummer==
<source lang="html"> /^((\+|00)33\s?|0)[67](\s?\d{2}){4}$/</source>
==Luxemburger Telefonnummer==
<source lang="html"> /^((\+|00\s?)352)?(\s?\d{2}){3,4}$/</source>
==Luxemburger Mobiltelefonnummer==
<source lang="html"> /^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/</source>
=Deutsche Zeichen (mit optionalem Plus oder Minus)=
<source lang="html"> /^[1-6]{1}[\+|\-]?$/</source>


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


=Altersvalidierung=


Not very precise:


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


==Belgian phone number==
Beispiel: Alter 18-35
<source>/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/</source>
<source lang="html"> /(1[8-9]|2[0-9]|3[0-5])/</source>
==Belgian mobile phone number==
<source>/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/</source>
==French phone number==
<source>/^((\+|00)33\s?|0)[1-5](\s?\d{2}){4}$/</source>
==French mobile phone number==
<source>/^((\+|00)33\s?|0)[679](\s?\d{2}){4}$/</source>
==Luxemburg phone number==
<source>/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/</source>
==Luxemburg mobile phone number==
<source>/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/</source>
=German marks (with optional plus or minus)=
<source>/^[1-6]{1}[\+|\-]?$/</source>
=Age validation=
Example: Age 20-99
<source>/([2-9][0-9])/</source>


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


Example: Age 18-35
<source>/(1[8-9]|2[0-9]|3[0-5])/</source>


=Zahlenvalidierung=


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


=Number validation=
==Zahlen von 1 bis 99999==
==Numbers from 1 to 99999==
<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]|[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][0-9]{0,4}$/ macht das Gleiche wie oben, sollte aber etwas schneller laufen</source>  
<source>/^[1-9][0-9]{0,4}$/ does the same as above but should run a little faster</source>
==Zahlen von 1 bis 999, 1.000 bis 999.999 bis 999.999.999==
==Numbers from 1 to 999, 1.000 to 999.999 to 999.999.999==
<source lang="html"> /^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/</source>  
<source>/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/</source>
Akzeptiert Zahlen von 1 bis 999, 1.000 bis 999.999 bis 999.999.999, aber
Accepts numbers from 1 to 999, 1.000 to 999.999 to 999.999.999 but
lehnt Zahlen wie 999.1.1, 94.22.22, 999.1.22, 999.11.1, 999.1.333 ab
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)==
==Zahlenvalidierung mit optionaler Dezimalzahl (für Preis)==
Accepts numbers from 0 to 199, with 2 decimal optional:
Akzeptiert Zahlen von 0 bis 199, mit 2 Dezimalstellen 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>


==Zahlenvalidierung mit Tausendertrennzeichen==
Leerzeichen als Trennzeichen, kein Minus
<source lang="html"> /^(?!0)\d{1,3}(\ \d{3})*$/</source>
Punkt als Trennzeichen, Minus erlaubt
<source lang="html"> /^-?(?!0)\d{1,3}(\.\d{3})*$/</source>


Forces two decimal points and accepts numbers from 1.00 to 999,999,999.00 with an optional comma delimiting thousands/millions
Es erzwingt zwei Dezimalstellen und akzeptiert Zahlen von 1,00 bis 999.999.999,00 mit einem optionalen Komma zur Trennung von Tausendern/Millionen 3456789.00
including all of the following: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00
aber nicht 1,23,00, 12,3,4 oder 1234,43,04
but not 1,23.00, 12,3.4 or 1234,43.04
<source lang="html"> /^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>  
<source>/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>
   
   
Ähnlich wie oben: Erzwingt zwei Dezimalstellen, akzeptiert aber eine „0“ vor dem Dezimaltrennzeichen ",".
<source lang="html"> /[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>
Wie oben, aber die beiden Dezimalstellen sind optional:
<source lang="html"> /^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/</source>
==Monat (1-12)==
Wenn Sie nach dem Geburtsmonat einer Person fragen möchten, können Sie die Eingabe wie folgt validieren:
<source lang="html">/^[0]*[1-9]$|^[0]*1[0-2]$/</source>
=Mindestbreite (in diesem Beispiel auf 3 eingestellt)=


Same as above but the two decimal points are optional:
<source lang="html">/^.{3,}$/</source>
<source>/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/ </source>


==Month (1-12)==


If you want to ask for the month a person was born you can validate the input as follows:
=Währung=


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


=Minimum width (set to 3 in this example)=
==US-Währung (Dollarzeichen und Cent optional)==


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


=Currency=
Auf Kommaverwendung prüfen:
<source lang="html"> /^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/</source>


==US currency (dollar sign and cents optional)==
==Schweizer Preis==


<source>/^\$?\d+(\.(\d{2}]]?$/</source>
Eine Zahl mit zwei Nachkommazahlen, deren letzte entweder eine 5 oder eine 0 ist:


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


A number with two decimal numbers after the decimal point of which the last one is either a 5 or a 0:


<source>/^(\d+)(\.\d(05)?)?$/</source>
=Bewertung validieren=


=Validate score=


==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>
 
 
=Textvalidierung=
 
 
Der [[Fragetyp – Mehrfacher Kurztext|Fragetyp „Mehrfacher Kurztext“]] unterstützt derzeit keine Mindest- oder Höchstantworten. Eine Möglichkeit, dies zu umgehen, besteht darin, einen [[Fragetyp – Langer Freitext|langer Freitext-Fragetyp]] mit einem regulären Ausdruck zu verwenden.
 
Der folgende Ausdruck testet mindestens ein Wort pro Zeile für mindestens 3 Zeilen und nicht mehr als 10 Zeilen:
 
<source lang="html">/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?! & \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^, .;:?!& \n\r]+)*)){2,10}/is</source>


=Text validation=
Wenn Sie möchten, sagen Sie fünf Wörter pro Zeile, können Sie den ersten und letzten Stern/Sternchen in {4,} ändern:


currently multiple short text doesn't support minimum or maximum answers. One way around this is to use a long free text type question with a regular expression.
<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>


The following test for at least one word per line for at least 3 lines and no more than 10 lines.
Wenn Sie ein oder mehrere Wörter pro Zeile (zwischen Zeile 1 und Zeile 5) wünschen, können Sie den Inhalt in den letzten geschweiften Klammern in „0,4“ ändern (beachten Sie, dass Sie 0 verwenden, da Sie bereits mit der ersten Zeile übereinstimmen).


  <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]+)*)){0,4}/is</source>


If you wanted, say five words per line you could change the first and last star/asterisk to {4,} e.g.
==Wortanzahl==


  <source>/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is</source>
  Folgendes beschränkt die Anzahl der zulässigen Wörter auf mindestens 1 und höchstens 200:


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


  <source>/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){0,4}/is</source>
  Um das Minimum zu erhöhen, ändern Sie den Nullteil von {0,199}.


==Word count==
Um den Höchstwert zu erhöhen oder zu verringern, ändern Sie den „199“-Teil von {0,199}.


<source>The following restricts the number of words allowed to a minimum of 1 and a maximum of 200
=Zeitvalidierung=


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


<source>To increase the minimum change the zero part of {0,199}
Es gibt verschiedene Möglichkeiten, Zeitformate zu schreiben. Einige der möglichen Optionen sind 12 Stunden oder 24 Stunden, mit oder ohne Sekunde. Obwohl es eine Option ist, den [[Fragetyp – Datum|Datumsfragetyp]] zu verwenden (er kann auch die Zeit erfassen), können Sie den [[Fragetyp – Kurzer Freitext|Kurzfreier Textfragetyp]] mit einem der folgenden regulären Validierungsausdrücke verwenden.


To increase or decrease the maximum change the "199" part of {0,199}</source>
Die folgenden drei Validierungszeichenfolgen testen eine 24-Stunden-Zeit (in der Reihenfolge ihres Auftretens) ohne Sekunden, mit optionalen Sekunden und schließlich mit erforderlichen Sekunden:


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


There are a number of ways of writing time formats. Some of the possible options are 12 hour or 24 hour, with seconds or without. Although it is an option to use the date question type (it can also capture time) you can use "short free text" with one of the validation regular expressions below:
<source lang="html">/^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/</source>


The following three validation strings test for 24 hour time (in order of appearences) without seconds, with optional seconds lastly with seconds required.
<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]$/</source>
Die folgenden drei entsprechen der 12-Stunden-Zeit, wie oben mit Sekunden, optionalen Sekunden und mit erforderlichen Sekunden:


<source>/^(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[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))$/</source>


<source>/^(?:[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))$/</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>


Die folgenden drei entsprechen entweder der 12- oder der 24-Stunden-Zeit wie oben, mit Sekunden, optionalen Sekunden und mit erforderlichen Sekunden:


The following three match 12 hour time, as above with seconds, optional seconds and with seconds required
<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] (?: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](?[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))$/</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))$/</source>
=US-Bundesstaaten=




Zur Validierung für einen Bundesstaat verwenden Sie Folgendes (Beispiel ist Texas):
*TX nur in Großbuchstaben:<source lang="html"> /^(TX)$/</source>
*tx nur in Kleinbuchstaben:<source lang="html"> /^(tx)$/</source>
*TX Groß- oder Kleinschreibung:<source lang="html"> /^([T|t][X|x])$/</source>


The following three match either 12 or 24 hour time as above with seconds, optional seconds and with seconds required


<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>
=Profanitätsfilter=


<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>/^(?:(?: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>
So filtern Sie Schimpfwörter aus einer Antwort:


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


To validate for one state use the following (example is Texas):
Ersetzen Sie „ENTERPROFANITYHERE“ durch Ihr schlechtes Wort.
*TX uppercase only = <source>/^(TX)$/</source>
*tx lowercase only = <source>/^(tx)$/</source>
*TX upper or lowercase = <source>/^([T|t][X|x])$/</source>


=Profanity Filter=
Das \b erlaubt die Übergabe von Wörtern wie „Assassination“ und „Hallo“, wenn Sie als Schimpfwort „Arsch“ oder „Hölle“ eingeben. Dies funktioniert auch, wenn Sie versuchen, andere Wörter, Namen usw. in den Antworten wegzulassen.


To filter profanity words from an answer:


<source>/^(?i)((?!\bENTERPROFANITYHERE\b).)*$(?-i)/</source>
=Hilfreiche Links=


Replace "ENTERPROFANITYHERE" with your bad word.


The \b will allow passing of words such as "assassination" & "hello" if you enter "ass" or "hell" as your profanity word. This also works if you are trying to omit other words, names etc. from answers.
Am Anfang dieses Wiki-Abschnitts empfehlen wir Ihnen, https://regex101.com/ zu verwenden, um reguläre Ausdrücke zu testen/erstellen. Sie können auch https://www.regextester.com/ verwenden, um Ausdrücke zu erstellen, falls Sie mit der ersten Option unzufrieden sind. Sie können https://extendsclass.com/regex-tester.html verwenden, um reguläre Ausdrücke zu visualisieren.

Latest revision as of 08:47, 28 July 2023

Reguläre Ausdrücke müssen am Anfang und Ende mit einem Schrägstrich ("/") umschlossen sein. Sie finden eine gute Bibliothek mit regulären Ausdrücken auf http://www.regexlib.net/. Diese Ausdrücke werden fast alle funktionieren, wenn Sie diese mit dem Schrägstrich einschließen.

Um Ihre RegEx zu testen, können Sie diesen RegEx-Tester verwenden.

Template:Hinweis

  Achtung : Bitte beachten Sie, dass alle folgenden Beispiele in einer Zeile geschrieben sind!



Wichtig: Reguläre Ausdrücke in Bedingungen

Beachten Sie, dass bei der Verwendung von regulären Ausdrücken im Bedingungseditor, der Anfangs-/Endschrägstrich NICHT benutzt werden darf.


E-Mail-Validierung

Update (12/2018): Da Domänennamen heutzutage nicht nur Sonderzeichen wie „ü“ enthalten können, sondern auch mehr als 3 Zeichen als Domänennamen wie .tech oder .company verwenden, prüft der folgende E-Mail-Regex nur, ob „@“ und „.“ existiert innerhalb der eingegebenen E-Mail-Adresse.

 
/^.+?@.+?\..+$/

Wenn Sie eine Adresse pro Zeile validieren möchten, gilt in einem mehrzeiligen Langtextfeld:

 
/^(((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(\r\n)?\n?)+)*)$/

Bei dieser veralteten Regex ist der Domainname auf 3 Zeichen beschränkt, was nicht alle verfügbaren Domains abdeckt:

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

Postleitzahlen

Australische Postleitzahlen:

/^[0-9]{4}/

Brasilianische Postleitzahlen

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

Kanadische Postleitzahlen

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

US-Postleitzahlen

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

Damit die Postleitzahl mit Null beginnt, verwenden Sie:

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

UK Postleitzahlen

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

Beachten Sie, dass dies nicht sehr genau ist und eine genauere Validierung viel komplexer ist. Weitere Informationen finden Sie beispielsweise unter StackOverflow-Antwort und Wikipedia. Information.

Französische Postleitzahlen

/(^[0-8]\d\d{3}$)|(^9[0-5]\d{3}$)|(^97[1-6]\d{2}$)| (^98[46-8]\d{2}$)/

Der obige Ausdruck ist sehr präzise und prüft, ob das französische Departement existiert (erste zwei Ziffern), einschließlich überseeischer Departements und überseeischer Gebiete (DOM-TOM).


Telefonnummern

US-Telefonnummern

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

oder

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

Mit dieser zweiten Option werden alle kanadischen und US-amerikanischen Telefonnummern abgeglichen, die nicht-stellige Symbole enthalten, einschließlich:

. ( ) - (Raum)

Dadurch können Sie Telefonnummern zuordnen, die wie folgt aussehen:

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

Australische Telefonnummern

Die folgenden Muster stimmen mit allen verschiedenen australischen Mobil- und Festnetznummern überein, auch mit der Ländervorwahl „+61“:

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

Aber nicht:

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

Klammern, Leerzeichen und Bindestriche werden ignoriert.

Die hier aufgeführten „Sehr präzise:“-Versionen gleichen die ersten vier oder fünf Ziffern einer Zahl ab, um sicherzustellen, dass es sich um gültige australische Zahlen handelt.

Die Angabe „Nicht sehr präzise:“ stimmt nur mit der ersten und zweiten Ziffer überein und lässt daher möglicherweise ungültige Zahlen zu.

Alle australischen Telefonnummern (Mobil- und Festnetz – Vorwahl erforderlich)

Sehr präzise:

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

Nicht sehr präzise:

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

Alle australischen Telefonnummern (nur Festnetz – Vorwahl erforderlich)

Sehr präzise:

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

Nicht sehr präzise:

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

Festnetznummern für New South Wales (Vorwahl optional)

Sehr präzise:

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

Nicht sehr präzise:

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

Viktorianische und tasmanische Festnetznummern (Vorwahl optional)

Sehr präzise:

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

Nicht sehr präzise:

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

Festnetznummern in Queensland (Vorwahl optional)

Sehr präzise:

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

Nicht sehr präzise:

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

Festnetznummern für Südaustralien, Northern Territory, Westaustralien (Vorwahl optional)

Sehr präzise:

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

Nicht sehr präzise:

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

Nur australische Mobiltelefonnummern

Sehr präzise:

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

Nicht sehr präzise:

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

Belgische Telefonnummer

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

Belgische Mobiltelefonnummer

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

Französische Telefonnummer

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

Französische Mobiltelefonnummer

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

Luxemburger Telefonnummer

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

Luxemburger Mobiltelefonnummer

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

Deutsche Zeichen (mit optionalem Plus oder Minus)

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


Altersvalidierung

Beispiel: Alter 20-99

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

Beispiel: Alter 18-35

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

Beispiel: Alter 19-65

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


Zahlenvalidierung

Zahlen von 1 bis 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}$/ macht das Gleiche wie oben, sollte aber etwas schneller laufen

Zahlen von 1 bis 999, 1.000 bis 999.999 bis 999.999.999

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

Akzeptiert Zahlen von 1 bis 999, 1.000 bis 999.999 bis 999.999.999, aber lehnt Zahlen wie 999.1.1, 94.22.22, 999.1.22, 999.11.1, 999.1.333 ab

Zahlenvalidierung mit optionaler Dezimalzahl (für Preis)

Akzeptiert Zahlen von 0 bis 199, mit 2 Dezimalstellen optional:

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

Zahlenvalidierung mit Tausendertrennzeichen

Leerzeichen als Trennzeichen, kein Minus

 /^(?!0)\d{1,3}(\ \d{3})*$/

Punkt als Trennzeichen, Minus erlaubt

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

Es erzwingt zwei Dezimalstellen und akzeptiert Zahlen von 1,00 bis 999.999.999,00 mit einem optionalen Komma zur Trennung von Tausendern/Millionen 3456789.00 aber nicht 1,23,00, 12,3,4 oder 1234,43,04

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

Ähnlich wie oben: Erzwingt zwei Dezimalstellen, akzeptiert aber eine „0“ vor dem Dezimaltrennzeichen ",".

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

Wie oben, aber die beiden Dezimalstellen sind optional:

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

Monat (1-12)

Wenn Sie nach dem Geburtsmonat einer Person fragen möchten, können Sie die Eingabe wie folgt validieren:

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

Mindestbreite (in diesem Beispiel auf 3 eingestellt)

/^.{3,}$/


Währung

US-Währung (Dollarzeichen und Cent optional)

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

Auf Kommaverwendung prüfen:

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

Schweizer Preis

Eine Zahl mit zwei Nachkommazahlen, deren letzte entweder eine 5 oder eine 0 ist:

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


Bewertung validieren

1-10

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

1-100

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


Textvalidierung

Der Fragetyp „Mehrfacher Kurztext“ unterstützt derzeit keine Mindest- oder Höchstantworten. Eine Möglichkeit, dies zu umgehen, besteht darin, einen langer Freitext-Fragetyp mit einem regulären Ausdruck zu verwenden.

Der folgende Ausdruck testet mindestens ein Wort pro Zeile für mindestens 3 Zeilen und nicht mehr als 10 Zeilen:

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

Wenn Sie möchten, sagen Sie fünf Wörter pro Zeile, können Sie den ersten und letzten Stern/Sternchen in {4,} ändern:

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

Wenn Sie ein oder mehrere Wörter pro Zeile (zwischen Zeile 1 und Zeile 5) wünschen, können Sie den Inhalt in den letzten geschweiften Klammern in „0,4“ ändern (beachten Sie, dass Sie 0 verwenden, da Sie bereits mit der ersten Zeile übereinstimmen).

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

Wortanzahl

Folgendes beschränkt die Anzahl der zulässigen Wörter auf mindestens 1 und höchstens 200:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
Um das Minimum zu erhöhen, ändern Sie den Nullteil von {0,199}.

Um den Höchstwert zu erhöhen oder zu verringern, ändern Sie den „199“-Teil von {0,199}.

Zeitvalidierung

Es gibt verschiedene Möglichkeiten, Zeitformate zu schreiben. Einige der möglichen Optionen sind 12 Stunden oder 24 Stunden, mit oder ohne Sekunde. Obwohl es eine Option ist, den Datumsfragetyp zu verwenden (er kann auch die Zeit erfassen), können Sie den Kurzfreier Textfragetyp mit einem der folgenden regulären Validierungsausdrücke verwenden.

Die folgenden drei Validierungszeichenfolgen testen eine 24-Stunden-Zeit (in der Reihenfolge ihres Auftretens) ohne Sekunden, mit optionalen Sekunden und schließlich mit erforderlichen Sekunden:

/^(?:[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]$/

Die folgenden drei entsprechen der 12-Stunden-Zeit, wie oben mit Sekunden, optionalen Sekunden und mit erforderlichen Sekunden:

/^(?">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))$/

Die folgenden drei entsprechen entweder der 12- oder der 24-Stunden-Zeit wie oben, mit Sekunden, optionalen Sekunden und mit erforderlichen Sekunden:

/^(?:(?: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])$/

US-Bundesstaaten

Zur Validierung für einen Bundesstaat verwenden Sie Folgendes (Beispiel ist Texas):

  • TX nur in Großbuchstaben:
     /^(TX)$/
    
  • tx nur in Kleinbuchstaben:
     /^(tx)$/
    
  • TX Groß- oder Kleinschreibung:
     /^([T|t][X|x])$/
    


Profanitätsfilter

So filtern Sie Schimpfwörter aus einer Antwort:

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

Ersetzen Sie „ENTERPROFANITYHERE“ durch Ihr schlechtes Wort.

Das \b erlaubt die Übergabe von Wörtern wie „Assassination“ und „Hallo“, wenn Sie als Schimpfwort „Arsch“ oder „Hölle“ eingeben. Dies funktioniert auch, wenn Sie versuchen, andere Wörter, Namen usw. in den Antworten wegzulassen.


Hilfreiche Links

Am Anfang dieses Wiki-Abschnitts empfehlen wir Ihnen, https://regex101.com/ zu verwenden, um reguläre Ausdrücke zu testen/erstellen. Sie können auch https://www.regextester.com/ verwenden, um Ausdrücke zu erstellen, falls Sie mit der ersten Option unzufrieden sind. Sie können https://extendsclass.com/regex-tester.html verwenden, um reguläre Ausdrücke zu visualisieren.