x

Glavna poglavlja

  1. LimeSurvey Cloud u usporedbi s LimeSurvey CE
  2. Vodič za brzi početak - LimeSurvey 3.0+
  3. Instalacija - LimeSurvey CE
  4. Kako izraditi dobar upitnik (vodič)
  5. Početak rada
  6. Administriranje LimeSurveya
  7. Upitnici - uvod
  8. Postavke upitnika
  9. Izbornik upitnika
  10. Struktura upitnika
  11. Pitanja - uvod
  12. Skupine pitanja - uvod
  13. Upitnici - upravljanje
  14. Opcije alatne trake upitnika
  15. Višejezični upitnik
  16. ExpressionScript Engine - Vodič za brzi početak
  17. Nekategorizirane i napredne značajke
  18. Opći FAQ
  19. Rješavanje problema
  20. Zaobilazna rješenja
  21. Licenca
  22. Popis izmjena po verzijama
  23. Dodaci
 Actions

Korištenje regularnih izraza

From LimeSurvey Manual

Ova je stranica možda strojno prevedena i može sadržavati pogreške. Prikaži engleski izvornik · Poboljšaj ovaj prijevod
This page is a translated version of the page Using regular expressions and the translation is 100% complete.

Regularni izrazi moraju počinjati i završavati kosom crtom ("/"). Dobru zbirku regularnih izraza možete pronaći na https://www.regexlib.net/. Ovi uzorci gotovo uvijek rade ako su okruženi kosim crtama.

Za testiranje regularnog izraza možete koristiti ovaj alat za testiranje regularnih izraza.

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.
  Pozor : Imajte na umu da su svi dolje navedeni primjeri napisani u jednom retku!



Važno: regularni izrazi u uvjetima

Imajte na umu da pri korištenju regularnih izraza u uređivaču uvjeta NE smijete uključiti početnu i završnu kosu crtu.


Provjera e-pošte

Ažuriranje (12/2018): Budući da domene danas mogu sadržavati posebne znakove poput „ü“, ali i imati više od 3 znaka, npr. .tech ili .company, dolje navedeni regularni izraz za e-poštu provjerava samo postoje li znakovi „@“ i „.“ u unesenoj adresi e-pošte.

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

Ako želite provjeriti jednu adresu po retku u višeretčanom polju tipa Dugi tekst:

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

Kod ovog zastarjelog regularnog izraza naziv domene ograničen je na 3 znaka, što ne pokriva sve dostupne domene:

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

Poštanski brojevi

Australski poštanski brojevi:

/^[0-9]{4}/

Brazilski poštanski brojevi

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

Kanadski poštanski brojevi

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

Poštanski brojevi SAD-a

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

Ako poštanski broj treba počinjati nulom, koristite:

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

Poštanski brojevi Ujedinjenog Kraljevstva

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

Imajte na umu da ovo nije posve točno, a točnija provjera je mnogo složenija. Dodatne informacije potražite, na primjer, u odgovoru na StackOverflowu i na Wikipediji.

Francuski poštanski brojevi

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

Gornji izraz je vrlo precizan i provjerava postoji li francuski departman (prve dvije znamenke), uključujući prekomorske departmane i prekomorske teritorije (DOM-TOM).


Telefonski brojevi

Telefonski brojevi u SAD-u

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

ili

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

Ova druga opcija podudara se sa svim kanadskim i američkim telefonskim brojevima koji sadrže znakove koji nisu znamenke, uključujući:

 . ( ) - (space)

Ovo će vam omogućiti podudaranje telefonskih brojeva koji izgledaju kao u nastavku:

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

Australski telefonski brojevi

Sljedeći uzorci podudaraju se sa svim raznim australskim brojevima mobilnih i fiksnih telefona, uključujući one s državnim prefiksom "+61":

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

Ali ne i:

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

Zagrade, razmaci i crtice se zanemaruju.

Verzije označene kao 'Vrlo precizno:' provjeravaju prve četiri ili pet znamenki u broju kako bi se osiguralo da su to valjani australski brojevi.

Verzije označene kao 'Nije vrlo precizno:' provjeravaju samo prvu i drugu znamenku, pa mogu dopustiti nevaljane brojeve.

Svi australski telefonski brojevi (mobilni i fiksni - pozivni broj je obavezan)

Vrlo precizno:

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

Nije vrlo precizno:

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

Svi australski telefonski brojevi (samo fiksni - pozivni broj je obavezan)

Vrlo precizno:

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

Nije vrlo precizno:

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

Fiksni telefonski brojevi u Novom Južnom Walesu (pozivni broj nije obavezan)

Vrlo precizno:

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

Nije vrlo precizno:

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

Fiksni telefonski brojevi u Victoriji i Tasmaniji (pozivni broj nije obavezan)

Vrlo precizno:

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

Nije vrlo precizno:

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

Fiksni telefonski brojevi u Queenslandu (pozivni broj nije obavezan)

Vrlo precizno:

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

Nije vrlo precizno:

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

Fiksni telefonski brojevi u Južnoj Australiji, Sjevernom teritoriju i Zapadnoj Australiji (pozivni broj nije obavezan)

Vrlo precizno:

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

Nije vrlo precizno:

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

Samo australski mobilni telefonski brojevi

Vrlo precizno:

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

Nije vrlo precizno:

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

Belgijski telefonski broj

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

Belgijski broj mobitela

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

Francuski telefonski broj

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

Francuski broj mobitela

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

Luksemburški telefonski broj

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

Luksemburški broj mobitela

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

Njemačke ocjene (s neobaveznim plusom ili minusom)

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


Provjera dobi

Primjer: dob 20-99

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

Primjer: dob 18-35

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

Primjer: dob 19-65

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


Provjera brojeva

Brojevi 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}$/ does the same as above but should run a little faster

Brojevi 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}$/

Prihvaća brojeve od 1 do 999, od 1.000 do 999.999 do 999.999.999, ali odbija brojeve poput 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333

Provjera broja s neobveznim decimalama (za cijenu)

Prihvaća brojeve od 0 do 199, s neobveznim dvjema decimalama:

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

Provjera broja s separatorom tisućica

Razmak kao separator, bez minusa

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

Točka kao separator, minus je dopušten

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

Nameće dvije decimale i prihvaća brojeve od 1.00 do 999,999,999.00 s neobveznim zarezom koji odvaja tisuće/milijune, uključujući sve sljedeće: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00 ali ne 1,23.00, 12,3.4 ili 1234,43.04

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

Slično prethodnom: nameće dvije decimale, ali prihvaća „0” ispred decimalnog separatora „,”.

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

Isto kao gore, ali su dvije decimale neobvezne:

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

Mjesec (1-12)

Ako želite pitati za mjesec rođenja osobe, unos možete provjeriti na sljedeći način:

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

Minimalna širina (u ovom primjeru postavljena na 3)

/^.{3,}$/


Valuta

Američka valuta (znak dolara i centi neobvezni)

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

Provjera upotrebe zareza:

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

Švicarska cijena

Broj s dvije decimale iza decimalne točke, od kojih je posljednja 5 ili 0:

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


Provjera ocjene

1-10

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

1-100

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


Provjera teksta

Vrsta pitanja Više kraćih tekstova trenutačno ne podržava minimalan ili maksimalan broj odgovora. Jedno od rješenja je upotreba vrste pitanja Slobodan dugačak tekst s regularnim izrazom.

Donji izraz provjerava postoji li barem jedna riječ po retku u najmanje 3, a najviše 10 redaka:

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

Ako želite, primjerice, pet riječi po retku, možete promijeniti prvu i posljednju zvjezdicu u {4,}:

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

Ako želite jednu ili više riječi po retku (između retka 1 i retka 5), sadržaj unutar posljednjih vitičastih zagrada možete promijeniti u 0,4 (napomena: koristi se 0 jer se prvi redak već podudara).

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

Broj riječi

Sljedeće ograničava broj dopuštenih riječi na minimum od 1 i maksimum od 200:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
Za povećanje minimuma promijenite nulu u {0,199}.

Za povećanje ili smanjenje maksimuma promijenite dio „199” u {0,199}.

Provjera vremena

Postoji nekoliko načina za zapis vremena. Neke od mogućih opcija su 12-satni ili 24-satni format, sa sekundama ili bez njih. Iako je moguće koristiti vrstu pitanja Datum (ona može bilježiti i vrijeme), možete koristiti i vrstu pitanja Slobodan tekst (kratak) s jednim od donjih regularnih izraza za provjeru.

Sljedeća tri niza za provjeru testiraju 24-satno vrijeme (redom): bez sekundi, s neobveznim sekundama i na kraju sa sekundama kao obveznima:

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

Sljedeća tri podudaraju se s 12-satnim vremenom, kao gore: sa sekundama, s neobveznim sekundama i sa sekundama kao obveznima:

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

Sljedeća tri podudaraju se s 12-satnim ili 24-satnim vremenom, kao gore: sa sekundama, s neobveznim sekundama i sa sekundama kao obveznima:

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

Savezne države SAD-a

Za provjeru jedne savezne države upotrijebite sljedeće (primjer je Teksas):

  • TX samo velikim slovima:
    /^(TX)$/
    
  • tx samo malim slovima:
    /^(tx)$/
    
  • TX velikim ili malim slovima:
    /^([T|t][X|x])$/
    


Filter za vulgarne riječi

Za filtriranje vulgarnih riječi iz odgovora:

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

Zamijenite "ENTERPROFANITYHERE" svojom nepoželjnom riječi.

Oznaka \b omogućit će prolazak riječi poput "assassination" i "hello" ako kao vulgarnu riječ unesete "ass" ili "hell". To funkcionira i ako želite izostaviti druge riječi, imena itd. iz odgovora.


Korisne poveznice

Na početku ovog odjeljka wikija preporučujemo da za testiranje/izradu regularnih izraza koristite https://regex101.com/. Ako vam prva opcija ne odgovara, za izradu izraza možete koristiti i https://www.regextester.com/. Za vizualizaciju regularnih izraza možete koristiti https://extendsclass.com/regex-tester.html.