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 "Używanie wyrażeń regularnych"
 
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..."
 
(101 intermediate revisions by the same user not shown)
Line 2: Line 2:
__TOC__
__TOC__


Regular Expressions must start and finish with a forward slash ("/"). You can find a good library of regular expressions at http://www.regexlib.net/. These patterns will almost always work if they are surrounded by forward slashes.
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.


To test your regex you can [https://regex101.com/ use this regex tester].
Aby przetestować wyrażenie regularne, możesz [https://regex101.com/ użyć tego testera wyrażeń regularnych].


{{Note|To improve this wiki section, we kindly ask you to add your successfully tested regular expression(s) to provide a better understanding of this feature to the new LimeSurvey (potential) users.}}
{{Uwaga|Aby ulepszyć tę sekcję wiki, uprzejmie prosimy o dodanie pomyślnie przetestowanych wyrażeń regularnych, aby zapewnić lepsze zrozumienie tej funkcji nowym (potencjalnym) użytkownikom LimeSurvey.}}


{{Alert|title=Attention|text= Please note that all the below examples are written on one line!}}
{{Alert|title=Attention|text= Pamiętaj, że wszystkie poniższe przykłady są zapisane w jednej linii!}}




=Important: Regular Expressions in conditions=
=Ważne: Wyrażenia regularne w warunkach=




Note that when using regular expressions in the condition editor, do NOT include the beginning and ending slash.
Pamiętaj, że używając wyrażeń regularnych w edytorze warunków, NIE dodawaj ukośnika początkowego i końcowego.




=Email validation=
=Weryfikacja e-mailem=




Update (12/2018): Since these days domain names cannot only hold special characters like “ü” but also use more than 3 characters as domain name like .''tech'' or .''company'', the below email regex only checks if “@” and “.” exists within the entered email address.
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.
<source lang="html">
<source lang="html">  
/^.+?@.+?\..+$/
/^.+?@.+?\..+$/
</source>
</source>


If you want to validate one address per line, in a multiline long text field:
Jeśli chcesz sprawdzić poprawność jednego adresu w wierszu, w długim, wielowierszowym polu tekstowym:
<source lang="html">
<source lang="html">  
/^(((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(\r\n)?\n?)+)*)$/
/^(((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(\r\ n)?\n?)+)*)$/
</source>
</source>


At this outdated regex the domain name is limited to 3 characters which doesn't cover all available domains:
W tym przestarzałym wyrażeniu regularnym nazwa domeny jest ograniczona do 3 znaków, co nie obejmuje wszystkich dostępnych domen:
<source lang="html">
<source lang="html">  
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
</source>
</source>


=Postcodes=
=Kody pocztowe=


==Australian postcodes:==
==Australijskie kody pocztowe:==


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


==Brazilian postcodes==
==Brazylijskie kody pocztowe==


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


==Canadian postcodes==
==Kanadyjskie kody pocztowe==


  <source lang="html">/^[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>


==US postal codes==
==Kody pocztowe w USA==


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


For the postal code to start with zero, use:
Aby kod pocztowy zaczynał się od zera, użyj:


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


==UK postcodes==
==Kody pocztowe w Wielkiej Brytanii==


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


Note that this is not very exact, and a more exact validation is much more complex. For example, see [https://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive StackOverflow answer] and [https://en.wikipedia.org/wiki/Talk:Postcodes_in_the_United_Kingdom#Regular_Expressions Wikipedia] for more information.
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 [https://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive odpowiedź StackOverflow] i [https://en.wikipedia.org/wiki/Talk:Postcodes_in_the_United_Kingdom#Regular_Expressions Wikipedia], aby uzyskać więcej Informacja.


==French postcodes==  
==Francuskie kody pocztowe==  


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


The above expression is very precise and it will check whether or not the French Department exists (first two digits), including overseas Departments and overseas Territories (DOM-TOM).
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).




=Phone numbers=
=Numery telefonów=




==US phone numbers==
==Numery telefonów w USA==


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


  <source lang="html">/^[\(\)\.\- ]{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:
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:


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


This will allow you to match phone numbers which resemble below:
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
*555 555 5555
*(555)-555-5555
*(555)-555-5555
*555-555-5555
* 555-555-5555
*555555555
*555555555


==Australian phone numbers==
==Australijskie numery telefonów==


The following patterns match all various Australian mobile and landline phone numbers including with "+61" country prefix:
Poniższe wzorce pasują do wszystkich australijskich numerów telefonów komórkowych i stacjonarnych, w tym z prefiksem kraju „+61”:
*(02) 9123 6535
*(02) 9123 6535
*03 1234-5345
*03 1234-5345
*0412 345 678
*0412 345 678
*+61 2 3456 789
**+ 61 2 3456 789


But not:
Ale nie:
* 234 3450 234
* 234 3450 234
*a234 534 3432
*a234 534 3432
Line 107: Line 107:
*123456789013
*123456789013


Brackets, white space and hypens are ignored.
Nawiasy, białe znaki i łączniki są ignorowane.


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


The 'Not very precise:' only match against the first and second digit so may allow invaid numbers.
Pole „Niezbyt precyzyjne:” pasuje tylko do pierwszej i drugiej cyfry, więc może pozwolić na nieprawidłowe liczby.


===All Australian phone numbers (mobile and landline - area code required)===
===Wszystkie australijskie numery telefonów (komórkowe i stacjonarne – wymagany numer kierunkowy)===


Very precise:
Bardzo dokładny:


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


Not very precise:
Mało precyzyjne:


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


===All Australian phone numbers (landlines only - area code required)===
===Wszystkie australijskie numery telefonów (tylko telefony stacjonarne – wymagany numer kierunkowy)===


Very precise:
Bardzo dokładny:


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


Not very precise:
Mało precyzyjne:


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


===New South Wales landline phone numbers (area code optional)===
===Numery telefonów stacjonarnych w Nowej Południowej Walii (opcjonalnie numer kierunkowy)===


Very precise:
Bardzo dokładny:


<source lang="html">/^(?:\(?(?:\+?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>


Not very precise:
Mało precyzyjne:


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


===Victorian and Tasmanian landline phone numbers (area code optional)===
===Numery telefonów stacjonarnych w Wiktorii i Tasmanii (opcjonalnie numer kierunkowy)===


Very precise:
Bardzo dokładny:


<source lang="html">/^(?:\(?(?:\+?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>


Not very precise:
Mało precyzyjne:


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


===Queensland landline phone numbers (area code optional)===
===Numery telefonów stacjonarnych w Queensland (opcjonalnie numer kierunkowy)===


Very precise:
Bardzo dokładny:


<source lang="html">/^(?:\(?(?:\+?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>


Not very precise:
Mało precyzyjne:


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


===South Australia, Northern Territory, Western Australia landline phone numbers (area code optional)===
===Australia Południowa, Terytorium Północne, Numery telefonów stacjonarnych w Australii Zachodniej (opcjonalnie numer kierunkowy)===


Very precise:
Bardzo dokładny:


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