x

Główne rozdziały

  1. LimeSurvey Cloud a LimeSurvey CE
  2. LimeSurvey Cloud — przewodnik szybkiego startu
  3. LimeSurvey CE - Instalacja
  4. Jak dobrze zaprojektować ankietę (Przewodnik)
  5. Pierwsze kroki
  6. Konfiguracja LimeSurvey
  7. Wprowadzenie - Ankiety
  8. Wyświetl ustawienia ankiety
  9. Zobacz menu ankiety
  10. Wyświetl strukturę ankiety
  11. Wprowadzenie - Pytania
  12. Wprowadzenie - Grupy pytań
  13. Wprowadzenie - Ankiety - Zarządzanie
  14. Opcje paska narzędzi ankiety
  15. Ankieta wielojęzyczna
  16. Skrócona instrukcja obsługi — ExpressionScript
  17. Zaawansowane funkcje
  18. Ogólne FAQ
  19. Rozwiązywanie problemów
  20. Obejścia
  21. Licencja
  22. Dziennik zmian wersji
  23. Wtyczki - Zaawansowane
 Actions

Using regular expressions/pl: Difference between revisions

From LimeSurvey Manual

Maren.fritz (talk | contribs)
Created page with "<source lang="html">/^(?:\(?(?:\+?61|0)8\)?[ -]?)?(?:5[1-4]|6[0-8]|[7-9] [0-9])$/</source>"
Maren.fritz (talk | contribs)
Created page with "Na początku tej sekcji wiki zalecamy użycie https://regex101.com/ do testowania/tworzenia wyrażeń regularnych. Możesz także użyć https://www.regextester.com/ do tworze..."
 
(48 intermediate revisions by the same user not shown)
Line 170: Line 170:
<source lang="html">/^(?:\(?(?:\+?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>


Not very precise:
Mało precyzyjne:


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


===Australian mobile phone numbers only===
===Tylko australijskie numery telefonów komórkowych===


Very precise:
Bardzo dokładny:


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


Not very precise:
Mało precyzyjne:


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


==Belgian phone number==
==Belgijski numer telefonu==
<source lang="html">/^((\+|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>  
==Belgian mobile phone number==
==Belgijski numer telefonu komórkowego==
<source lang="html">/^((\+|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>  
==French phone number==
==Francuski numer telefonu==
<source lang="html">/^((\+|00)33\s?|0)[1-59](\s?\d{2}){4}$/</source>
<source lang="html"> /^((\+|00)33\s?|0)[1-59](\s?\d{2}){4}$/</source>  
==French mobile phone number==
==Francuski numer telefonu komórkowego==
<source lang="html">/^((\+|00)33\s?|0)[67](\s?\d{2}){4}$/</source>
<source lang="html"> /^((\+|00)33\s?|0)[67](\s?\d{2}){4}$/</source>  
==Luxemburg phone number==
==Numer telefonu w Luksemburgu==
<source lang="html">/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/</source>
<source lang="html"> /^((\+|00\s?)352)?(\s?\d{2}){3,4}$/</source>  
==Luxemburg mobile phone number==
==Numer telefonu komórkowego w Luksemburgu==
<source lang="html">/^((\+|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>  
=German marks (with optional plus or minus)=
=Znaki niemieckie (z opcjonalnym plusem lub minusem)=
<source lang="html">/^[1-6]{1}[\+|\-]?$/</source>
<source lang="html"> /^[1-6]{1}[\+|\-]?$/</source>




=Age validation=
=Weryfikacja wieku=




Example: Age 20-99
Przykład: Wiek 20-99
<source lang="html">/([2-9][0-9])/</source>
<source lang="html"> /([2-9][0-9])/</source>


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


Example: Age 19-65
Przykład: Wiek 19-65
<source lang="html">/^(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>




=Number validation=  
=Weryfikacja numeru=  




==Numbers from 1 to 99999==
==Liczby od 1 do 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 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 lang="html">/^[1-9][0-9]{0,4}$/ does the same as above but should run a little faster</source>
<source lang="html"> /^[1-9][0-9]{0,4}$/ robi to samo co powyżej, ale powinno działać trochę szybciej</source>  
==Numbers from 1 to 999, 1.000 to 999.999 to 999.999.999==
==Liczby od 1 do 999, od 1.000 do 999.999 do 999.999.999==
<source lang="html">/^[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>  
Accepts numbers from 1 to 999, 1.000 to 999.999 to 999.999.999 but
Akceptuje liczby od 1 do 999, 1.000 do 999.999 do 999.999.999, ale
rejects numbers like 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333
odrzuca liczby takie jak 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333


==Number validation with optional decimal (for price)==
==Weryfikacja liczb z opcjonalnym ułamkiem dziesiętnym (dla ceny)==
Accepts numbers from 0 to 199, with 2 decimal optional:
Akceptuje liczby od 0 do 199, z opcjonalnym 2 miejscami po przecinku:
<source lang="html">/^([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>


==Number validation with thousand separator==
==Weryfikacja liczb z separatorem tysięcy==
Space as separator, no minus
Spacja jako separator, bez minusa
<source lang="html">/^(?!0)\d{1,3}(\ \d{3})*$/</source>
<source lang="html"> /^(?!0)\d{1,3}(\ \d{3})*$/</source>  
Dot as separator, minus allowed
Kropka jako separator, minus dozwolony
<source lang="html">/^-?(?!0)\d{1,3}(\.\d{3})*$/</source>
<source lang="html"> /^-?(?!0)\d{1,3}(\.\d{3})*$/</source>


It forces two decimal points and accepts numbers from 1.00 to 999,999,999.00 with an optional comma delimiting thousands/millions
Wymusza użycie dwóch kropek dziesiętnych i akceptuje liczby od 1,00 do 999 999 999,00 z opcjonalnym przecinkiem oddzielającym tysiące/miliony
including all of the following: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00
w tym wszystkie następujące: 1,00, 1000,00, 12 345,67, 12345,02, 123 456 468,00, 1234566,00, 1 23456789,00
but not 1,23.00, 12,3.4 or 1234,43.04
ale nie 1 ,23,00, 12,3,4 lub 1234,43,04
<source lang="html">/^[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>  
   
   
Similar to the above: Forces two decimal points but accepts a "0" before decimal separator ",".
Podobnie jak powyżej: wymusza dwa miejsca dziesiętne, ale akceptuje „0” przed separatorem dziesiętnym „,”.
<source lang="html">/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>
<source lang="html"> /[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/</source>


Same as above, but the two decimal points are optional:
To samo co powyżej, ale dwa miejsca po przecinku są opcjonalne:
<source lang="html">/^[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>


==Month (1-12)==
==Miesiąc (1-12)==


If you want to ask for the month a person was born you can validate the input as follows:
Jeśli chcesz zapytać o miesiąc urodzenia danej osoby, możesz sprawdzić wprowadzone dane w następujący sposób:


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


=Minimum width (set to 3 in this example)=
=Minimalna szerokość (w tym przykładzie ustawiona na 3)=




Line 257: Line 257:




=Currency=
=Waluta=




==US currency (dollar sign and cents optional)==
==Waluta amerykańska (opcjonalnie znak dolara i centy)==


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


Check for comma usage:
Sprawdź użycie przecinka:
<source lang="html">/^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/</source>
<source lang="html"> /^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/</source>


==Swiss price==
==Szwajcarska cena==


A number with two decimal numbers after the decimal point of which the last one is either a 5 or a 0:
Liczba z dwoma liczbami dziesiętnymi po przecinku, z których ostatnia to 5 lub 0:


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




=Validate score=
=Sprawdź wynik=




Line 286: Line 286:




=Text validation=
=Weryfikacja tekstu=




The [[Question type - Multiple short text|multiple short text question type]] doesn't support minimum or maximum answers at the moment. One way around this is to use a [[Question type - Long free text|long free text question type]] with a regular expression.
[[Typ pytania — pytanie z wieloma krótkimi tekstami|typ pytań z wieloma krótkimi tekstami]] nie obsługuje obecnie odpowiedzi minimalnej ani maksymalnej. Jednym ze sposobów obejścia tego problemu jest użycie [[typ pytania — długi tekst dowolny|typ pytania z długim tekstem]] z wyrażeniem regularnym.


The below expression tests for at least one word per line for at least 3 lines and no more than 10 lines:
Poniższe wyrażenie sprawdza co najmniej jedno słowo w wierszu w co najmniej 3 i nie więcej niż 10 wierszach:


  <source lang="html">/(?:[^,.;:?!& \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>


If you want, say five words per line, you could change the first and last star/asterisk to {4,}:
Jeśli chcesz, powiedz pięć słów w każdym wierszu, możesz zmienić pierwszą i ostatnią gwiazdkę/gwiazdkę na {4,}:


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


If you wanted one or more words per line (between line 1 and line 5), you can change the content located within the last curly braces to '''0,4''' (note you use 0 because you're already matching the first line).
Jeśli chcesz mieć jedno lub więcej słów w wierszu (między wierszem 1 a wierszem 5), możesz zmienić treść znajdującą się w ostatnich nawiasach klamrowych na „0,4” (pamiętaj, że używasz 0, ponieważ już dopasowujesz pierwsza linijka).


  <source lang="html">/(?:[^,.;:?!& \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>


==Word count==
==Liczba słów==


  The following restricts the number of words allowed to a minimum of 1 and a maximum of 200:
  Poniższe ogranicza liczbę dozwolonych słów do minimum 1 i maksymalnie 200:


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


  To increase the minimum change the zero part of {0,199}.
  Aby zwiększyć minimum, zmień część zerową z {0,199}.


To increase or decrease the maximum change the "199" part of {0,199}.
Aby zwiększyć lub zmniejszyć wartość maksymalną, zmień część „199” z {0,199}.


=Time validation=
=Weryfikacja czasu=




There are a number of ways to write 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 [[Question type - Date|date question type]] (it can also capture time) you can use the [[Question type - Short free text|short free text question type]] with one of the below validation regular expressions.
Istnieje wiele sposobów zapisywania formatów czasu. Niektóre z możliwych opcji to 12-godzinny lub 24-godzinny, z sekundami lub bez. Chociaż istnieje możliwość użycia [[typ pytania – typ pytania typu data|data]] (może także uwzględniać czas), możesz użyć [[typ pytania – krótki dowolny tekst|typ pytania krótki dowolny tekst]] z jednym z poniższe wyrażenia regularne służące do sprawdzania poprawności.


The following three validation strings test for 24 hour time (in order of appearances) without seconds, with optional seconds lastly with seconds required:
Poniższe trzy ciągi walidacyjne sprawdzają czas 24 godzin (w kolejności występowania) bez sekund, z opcjonalnymi sekundami na końcu z wymaganymi sekundami:


<source lang="html">/^(?:[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>
Line 326: Line 326:
<source lang="html">/^(?:[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>


The following three match 12 hour time, as above with seconds, optional seconds and with seconds required:
Poniższe trzy odpowiadają czasowi 12-godzinnemu, jak powyżej, z sekundami, opcjonalnymi sekundami i wymaganymi sekundami:


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


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


The following three match either 12 or 24 hour time as above with seconds, optional seconds and with seconds required:
Poniższe trzy odpowiadają czasowi 12- lub 24-godzinnemu jak powyżej, z sekundami, opcjonalnymi sekundami i wymaganymi sekundami:


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


=US states=
=Stany USA=




To validate for one state use the following (example is Texas):
Aby sprawdzić poprawność dla jednego stanu, użyj następującego polecenia (przykładem jest Teksas):
*TX uppercase only: <source lang="html">/^(TX)$/</source>
*TX tylko wielkie litery:<source lang="html"> /^(TX)$/</source>  
*tx lowercase only: <source lang="html">/^(tx)$/</source>
*tx tylko małe litery:<source lang="html"> /^(tx)$/</source>  
*TX upper or lowercase: <source lang="html">/^([T|t][X|x])$/</source>
*TX wielkie lub małe litery:<source lang="html"> /^([T|t][X|x])$/</source>




=Profanity Filter=
=Filtr wulgaryzmów=




To filter profanity words from an answer:
Aby odfiltrować wulgaryzmy z odpowiedzi:


  <source lang="html">/^(?i)((?!\bENTERPROFANITYHERE\b).)*$(?-i)/</source>
  <source lang="html">/^(?i)((?!\bWPROWADŹ TUTAJ WŁAŚCIWOŚĆ\b).)*$(?-i)/</source>


Replace "ENTERPROFANITYHERE" with your bad word.
Zastąp „ENTERPROFANITYHERE” swoim złym słowem.


The \b will allow passing of words such as "assassination" and "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.
\b pozwoli na przekazywanie słów takich jak „zabójstwo” i „cześć”, jeśli jako wulgaryzmy wpiszesz „tyłek” lub „piekło”. Działa to również, jeśli próbujesz pominąć w odpowiedziach inne słowa, imiona itp.




=Helpful links=
=Przydatne linki=




In the beginning of this wiki section, we recommend you to use https://regex101.com/ to test/create regular expressions. You can also use https://www.regextester.com/ to create expressions in case you are unhappy about the first option. You can use https://extendsclass.com/regex-tester.html to visualize regular expressions.
Na początku tej sekcji wiki zalecamy użycie https://regex101.com/ do testowania/tworzenia wyrażeń regularnych. Możesz także użyć https://www.regextester.com/ do tworzenia wyrażeń na wypadek, gdybyś nie był zadowolony z pierwszej opcji. Możesz użyć https://extendsclass.com/regex-tester.html do wizualizacji wyrażeń regularnych.

Latest revision as of 15:43, 26 September 2023

Wyrażenia regularne muszą zaczynać się i kończyć ukośnikiem („/”). Dobra bibliotekę wyrażeń regularnych można znaleźć pod adresem http://www.regexlib.net/. Te wzorce będą prawie zawsze działać, jeśli są otoczone ukośnikami.

Aby przetestować wyrażenie regularne, możesz użyć tego testera wyrażeń regularnych.

Template:Uwaga

  Attention : Pamiętaj, że wszystkie poniższe przykłady są zapisane w jednej linii!



Ważne: Wyrażenia regularne w warunkach

Pamiętaj, że używając wyrażeń regularnych w edytorze warunków, NIE dodawaj ukośnika początkowego i końcowego.


Weryfikacja e-mailem

Aktualizacja (12/2018): Ponieważ obecnie nazwy domen nie mogą zawierać tylko znaków specjalnych, takich jak „ü”, ale także używać więcej niż 3 znaków jako nazwy domeny, np. .tech lub .company, poniższe wyrażenie regularne adresu e-mail sprawdza tylko, czy „@” i „.” istnieje w podanym adresie e-mail.

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

Jeśli chcesz sprawdzić poprawność jednego adresu w wierszu, w długim, wielowierszowym polu tekstowym:

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

W tym przestarzałym wyrażeniu regularnym nazwa domeny jest ograniczona do 3 znaków, co nie obejmuje wszystkich dostępnych domen:

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

Kody pocztowe

Australijskie kody pocztowe:

/^[0-9]{4}/

Brazylijskie kody pocztowe

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

Kanadyjskie kody pocztowe

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

Kody pocztowe w USA

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

Aby kod pocztowy zaczynał się od zera, użyj:

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

Kody pocztowe w Wielkiej Brytanii

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

Należy pamiętać, że nie jest to zbyt dokładne, a dokładniejsza walidacja jest znacznie bardziej złożona. Na przykład zobacz odpowiedź StackOverflow i Wikipedia, aby uzyskać więcej Informacja.

Francuskie kody pocztowe

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

Powyższe wyrażenie jest bardzo precyzyjne i pozwoli sprawdzić, czy istnieje Departament Francuski (pierwsze dwie cyfry), w tym Departamenty Zamorskie i Terytoria Zamorskie (DOM-TOM).


Numery telefonów

Numery telefonów w USA

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

Lub

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

Ta druga opcja będzie pasować do wszystkich numerów telefonów w Kanadzie i USA, które zawierają symbole inne niż cyfry, w tym:

. ( ) - (przestrzeń)

Umożliwi to dopasowanie numerów telefonów przypominających poniższe:

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

Australijskie numery telefonów

Poniższe wzorce pasują do wszystkich australijskich numerów telefonów komórkowych i stacjonarnych, w tym z prefiksem kraju „+61”:

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

Ale nie:

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

Nawiasy, białe znaki i łączniki są ignorowane.

Wymienione tutaj wersje „bardzo precyzyjne:” dopasowują się do pierwszych czterech lub pięciu cyfr numeru, aby upewnić się, że są to prawidłowe numery australijskie.

Pole „Niezbyt precyzyjne:” pasuje tylko do pierwszej i drugiej cyfry, więc może pozwolić na nieprawidłowe liczby.

Wszystkie australijskie numery telefonów (komórkowe i stacjonarne – wymagany numer kierunkowy)

Bardzo dokładny:

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

Mało precyzyjne:

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

Wszystkie australijskie numery telefonów (tylko telefony stacjonarne – wymagany numer kierunkowy)

Bardzo dokładny:

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

Mało precyzyjne:

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

Numery telefonów stacjonarnych w Nowej Południowej Walii (opcjonalnie numer kierunkowy)

Bardzo dokładny:

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

Mało precyzyjne:

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

Numery telefonów stacjonarnych w Wiktorii i Tasmanii (opcjonalnie numer kierunkowy)

Bardzo dokładny:

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

Mało precyzyjne:

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

Numery telefonów stacjonarnych w Queensland (opcjonalnie numer kierunkowy)

Bardzo dokładny:

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

Mało precyzyjne:

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

Australia Południowa, Terytorium Północne, Numery telefonów stacjonarnych w Australii Zachodniej (opcjonalnie numer kierunkowy)

Bardzo dokładny:

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

Mało precyzyjne:

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

Tylko australijskie numery telefonów komórkowych

Bardzo dokładny:

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

Mało precyzyjne:

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

Belgijski numer telefonu

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

Belgijski numer telefonu komórkowego

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

Francuski numer telefonu

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

Francuski numer telefonu komórkowego

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

Numer telefonu w Luksemburgu

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

Numer telefonu komórkowego w Luksemburgu

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

Znaki niemieckie (z opcjonalnym plusem lub minusem)

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


Weryfikacja wieku

Przykład: Wiek 20-99

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

Przykład: Wiek 18-35

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

Przykład: Wiek 19-65

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


Weryfikacja numeru

Liczby od 1 do 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}$/ robi to samo co powyżej, ale powinno działać trochę szybciej

Liczby od 1 do 999, od 1.000 do 999.999 do 999.999.999

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

Akceptuje liczby od 1 do 999, 1.000 do 999.999 do 999.999.999, ale odrzuca liczby takie jak 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333

Weryfikacja liczb z opcjonalnym ułamkiem dziesiętnym (dla ceny)

Akceptuje liczby od 0 do 199, z opcjonalnym 2 miejscami po przecinku:

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

Weryfikacja liczb z separatorem tysięcy

Spacja jako separator, bez minusa

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

Kropka jako separator, minus dozwolony

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

Wymusza użycie dwóch kropek dziesiętnych i akceptuje liczby od 1,00 do 999 999 999,00 z opcjonalnym przecinkiem oddzielającym tysiące/miliony w tym wszystkie następujące: 1,00, 1000,00, 12 345,67, 12345,02, 123 456 468,00, 1234566,00, 1 23456789,00 ale nie 1 ,23,00, 12,3,4 lub 1234,43,04

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

Podobnie jak powyżej: wymusza dwa miejsca dziesiętne, ale akceptuje „0” przed separatorem dziesiętnym „,”.

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

To samo co powyżej, ale dwa miejsca po przecinku są opcjonalne:

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

Miesiąc (1-12)

Jeśli chcesz zapytać o miesiąc urodzenia danej osoby, możesz sprawdzić wprowadzone dane w następujący sposób:

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

Minimalna szerokość (w tym przykładzie ustawiona na 3)

/^.{3,}$/


Waluta

Waluta amerykańska (opcjonalnie znak dolara i centy)

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

Sprawdź użycie przecinka:

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

Szwajcarska cena

Liczba z dwoma liczbami dziesiętnymi po przecinku, z których ostatnia to 5 lub 0:

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


Sprawdź wynik

1-10

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

1-100

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


Weryfikacja tekstu

typ pytań z wieloma krótkimi tekstami nie obsługuje obecnie odpowiedzi minimalnej ani maksymalnej. Jednym ze sposobów obejścia tego problemu jest użycie typ pytania z długim tekstem z wyrażeniem regularnym.

Poniższe wyrażenie sprawdza co najmniej jedno słowo w wierszu w co najmniej 3 i nie więcej niż 10 wierszach:

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

Jeśli chcesz, powiedz pięć słów w każdym wierszu, możesz zmienić pierwszą i ostatnią gwiazdkę/gwiazdkę na {4,}:

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

Jeśli chcesz mieć jedno lub więcej słów w wierszu (między wierszem 1 a wierszem 5), możesz zmienić treść znajdującą się w ostatnich nawiasach klamrowych na „0,4” (pamiętaj, że używasz 0, ponieważ już dopasowujesz pierwsza linijka).

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

Liczba słów

Poniższe ogranicza liczbę dozwolonych słów do minimum 1 i maksymalnie 200:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
Aby zwiększyć minimum, zmień część zerową z {0,199}.

Aby zwiększyć lub zmniejszyć wartość maksymalną, zmień część „199” z {0,199}.

Weryfikacja czasu

Istnieje wiele sposobów zapisywania formatów czasu. Niektóre z możliwych opcji to 12-godzinny lub 24-godzinny, z sekundami lub bez. Chociaż istnieje możliwość użycia data (może także uwzględniać czas), możesz użyć typ pytania krótki dowolny tekst z jednym z poniższe wyrażenia regularne służące do sprawdzania poprawności.

Poniższe trzy ciągi walidacyjne sprawdzają czas 24 godzin (w kolejności występowania) bez sekund, z opcjonalnymi sekundami na końcu z wymaganymi sekundami:

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

Poniższe trzy odpowiadają czasowi 12-godzinnemu, jak powyżej, z sekundami, opcjonalnymi sekundami i wymaganymi sekundami:

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

Poniższe trzy odpowiadają czasowi 12- lub 24-godzinnemu jak powyżej, z sekundami, opcjonalnymi sekundami i wymaganymi sekundami:

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

Stany USA

Aby sprawdzić poprawność dla jednego stanu, użyj następującego polecenia (przykładem jest Teksas):

  • TX tylko wielkie litery:
     /^(TX)$/
    
  • tx tylko małe litery:
     /^(tx)$/
    
  • TX wielkie lub małe litery:
     /^([T|t][X|x])$/
    


Filtr wulgaryzmów

Aby odfiltrować wulgaryzmy z odpowiedzi:

/^(?i)((?!\bWPROWADŹ TUTAJ WŁAŚCIWOŚĆ\b).)*$(?-i)/

Zastąp „ENTERPROFANITYHERE” swoim złym słowem.

\b pozwoli na przekazywanie słów takich jak „zabójstwo” i „cześć”, jeśli jako wulgaryzmy wpiszesz „tyłek” lub „piekło”. Działa to również, jeśli próbujesz pominąć w odpowiedziach inne słowa, imiona itp.


Przydatne linki

Na początku tej sekcji wiki zalecamy użycie https://regex101.com/ do testowania/tworzenia wyrażeń regularnych. Możesz także użyć https://www.regextester.com/ do tworzenia wyrażeń na wypadek, gdybyś nie był zadowolony z pierwszej opcji. Możesz użyć https://extendsclass.com/regex-tester.html do wizualizacji wyrażeń regularnych.