x

Pääluvut

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Pikaopas - LimeSurvey 3.0+
  3. Asennus - LimeSurvey CE
  4. Miten suunnitella hyvä kysely (opas)
  5. Aloitus
  6. LimeSurveyn hallinnointi
  7. Kyselyt - johdanto
  8. Kyselyn asetukset
  9. Kyselyn valikko
  10. Kyselyn rakenne
  11. Kysymykset - johdanto
  12. Kysymysryhmät - johdanto
  13. Kyselyt - hallinta
  14. Kyselyn työkalupalkin asetukset
  15. Monikielinen kysely
  16. ExpressionScript-moottori - Pikaopas
  17. Luokittelemattomat ja edistyneet ominaisuudet
  18. Yleiset usein kysytyt kysymykset
  19. Vianmääritys
  20. Kiertotavat
  21. Lisenssi
  22. Version muutoslogi
  23. Lisäosat
 Actions

Säännöllisten lausekkeiden käyttö

From LimeSurvey Manual

Tämä sivu on saatettu kääntää konekäännöksenä, ja se voi sisältää virheitä. Näytä englanninkielinen alkuperäinen · Paranna tätä käännöstä
This page is a translated version of the page Using regular expressions and the translation is 100% complete.

Säännöllisen lausekkeen täytyy alkaa ja päättyä kenoviivaan ("/"). Hyvän kokoelman säännöllisiä lausekkeita löydät osoitteesta https://www.regexlib.net/. Nämä mallit toimivat lähes aina, kun ne ympäröidään kenoviivoilla.

Voit testata säännöllistä lauseketta tällä regex-testaustyökalulla.

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.
  Huomio : Huomaa, että kaikki alla olevat esimerkit on kirjoitettu yhdelle riville!



Tärkeää: säännölliset lausekkeet ehdoissa

Huomaa, että kun käytät säännöllisiä lausekkeita ehtoeditorissa, alku- ja loppukenoviivaa EI tule lisätä.


Sähköpostin validointi

Päivitys (12/2018): Nykyään verkkotunnukset voivat sisältää erikoismerkkejä, kuten “ü”, ja verkkotunnuksen pääte voi olla yli kolmimerkkinen, kuten .tech tai .company. Siksi alla oleva sähköpostin säännöllinen lauseke tarkistaa vain, että syötetyssä sähköpostiosoitteessa on “@” ja “.”.

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

Jos haluat validoida yhden osoitteen riviä kohden monirivisessä pitkän tekstin kentässä:

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

Tässä vanhentuneessa säännöllisessä lausekkeessa verkkotunnus on rajattu kolmeen merkkiin, mikä ei kata kaikkia käytössä olevia verkkotunnuksia:

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

Postinumerot

Australialaiset postinumerot:

/^[0-9]{4}/

Brasilialaiset postinumerot

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

Kanadalaiset postinumerot

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

Yhdysvaltalaiset postinumerot

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

Jos postinumeron on tarkoitus alkaa nollalla, käytä seuraavaa:

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

Britannialaiset postinumerot

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

Huomaa, että tämä ei ole kovin tarkka, ja tarkempi validointi on paljon monimutkaisempi. Katso lisätietoja esimerkiksi StackOverflow-vastauksesta ja Wikipediasta.

Ranskalaiset postinumerot

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

Yllä oleva lauseke on hyvin tarkka, ja se tarkistaa, onko ranskalainen departementti olemassa (kaksi ensimmäistä numeroa), mukaan lukien merentakaiset departementit ja merentakaiset alueet (DOM-TOM).


Puhelinnumerot

Yhdysvaltalaiset puhelinnumerot

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

tai

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

Tämä toinen vaihtoehto täsmää kaikkiin kanadalaisiin ja yhdysvaltalaisiin puhelinnumeroihin, jotka sisältävät muita kuin numeromerkkejä, kuten:

 . ( ) - (space)

Näin voit täsmätä puhelinnumeroihin, jotka muistuttavat seuraavia:

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

Australialaiset puhelinnumerot

Seuraavat mallit täsmäävät kaikkiin australialaisiin matkapuhelin- ja lankapuhelinnumeroihin, myös sellaisiin, joissa on maatunnuksen etuliite "+61":

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

Mutta ei seuraaviin:

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

Sulkeet, välilyönnit ja yhdysmerkit jätetään huomiotta.

Tässä luetellut 'Erittäin tarkka:' -versiot vertaavat numeron neljää tai viittä ensimmäistä numeroa varmistaakseen, että kyseessä ovat kelvolliset australialaiset numerot.

'Ei kovin tarkka:' -versiot vertaavat vain ensimmäistä ja toista numeroa, joten ne voivat hyväksyä virheellisiä numeroita.

Kaikki australialaiset puhelinnumerot (matkapuhelin ja lankapuhelin - suuntanumero vaaditaan)

Erittäin tarkka:

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

Ei kovin tarkka:

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

Kaikki australialaiset puhelinnumerot (vain lankapuhelimet - suuntanumero vaaditaan)

Erittäin tarkka:

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

Ei kovin tarkka:

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

Uuden Etelä-Walesin lankapuhelinnumerot (suuntanumero valinnainen)

Erittäin tarkka:

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

Ei kovin tarkka:

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

Victorian ja Tasmanian lankapuhelinnumerot (suuntanumero valinnainen)

Erittäin tarkka:

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

Ei kovin tarkka:

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

Queenslandin lankapuhelinnumerot (suuntanumero valinnainen)

Erittäin tarkka:

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

Ei kovin tarkka:

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

Etelä-Australian, Northern Territoryn ja Länsi-Australian lankapuhelinnumerot (suuntanumero valinnainen)

Erittäin tarkka:

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

Ei kovin tarkka:

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

Vain australialaiset matkapuhelinnumerot

Erittäin tarkka:

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

Ei kovin tarkka:

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

Belgialainen puhelinnumero

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

Belgialainen matkapuhelinnumero

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

Ranskalainen puhelinnumero

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

Ranskalainen matkapuhelinnumero

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

Luxemburgilainen puhelinnumero

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

Luxemburgilainen matkapuhelinnumero

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

Saksalaiset arvosanat (valinnainen plus tai miinus)

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


Iän validointi

Esimerkki: ikä 20-99

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

Esimerkki: ikä 18-35

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

Esimerkki: ikä 19-65

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


Numeroiden validointi

Numerot 1–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

Numerot 1–999, 1.000–999.999 ja 999.999.999

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

Hyväksyy numerot 1–999, 1.000–999.999 ja 999.999.999 asti, mutta hylkää numerot, kuten 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333

Lukujen validointi valinnaisella desimaaliosalla (hinnoille)

Hyväksyy luvut 0–199, joissa 2 desimaalia on valinnaisia:

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

Lukujen validointi tuhaterottimella

Välilyönti erottimena, ei miinusmerkkiä

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

Piste erottimena, miinusmerkki sallittu

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

Se pakottaa kaksi desimaalia ja hyväksyy luvut 1.00–999,999,999.00, joissa tuhansia ja miljoonia erottaa valinnainen pilkku, mukaan lukien kaikki seuraavat: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00 mutta ei lukuja 1,23.00, 12,3.4 tai 1234,43.04

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

Kuten edellä: pakottaa kaksi desimaalia, mutta hyväksyy "0":n ennen desimaalierotinta ",".

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

Sama kuin yllä, mutta kaksi desimaalia ovat valinnaisia:

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

Kuukausi (1–12)

Jos haluat kysyä henkilön syntymäkuukautta, voit validoida syötteen seuraavasti:

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

Vähimmäispituus (tässä esimerkissä 3)

/^.{3,}$/


Valuutta

Yhdysvaltain valuutta (dollarimerkki ja sentit valinnaisia)

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

Pilkun käytön tarkistus:

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

Sveitsiläinen hinta

Luku, jossa on kaksi desimaalia desimaalipisteen jälkeen ja joista viimeinen on joko 5 tai 0:

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


Pistemäärän validointi

1–10

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

1–100

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


Tekstin validointi

Useita lyhyitä tekstikenttiä -kysymystyyppi ei tällä hetkellä tue vastausten vvähimmäis- tai enimmäismäärää. Yksi tapa kiertää tämä on käyttää Pitkä vapaateksti -kysymystyyppiä säännöllisen lausekkeen kanssa.

Alla oleva lauseke tarkistaa, että jokaisella rivillä on vähintään yksi sana ja rivejä on vähintään 3 ja enintään 10:

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

Jos haluat esimerkiksi viisi sanaa riviä kohden, voit muuttaa ensimmäisen ja viimeisen tähden (*) muotoon {4,}:

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

Jos haluat yhden tai useamman sanan riviä kohden (rivien 1 ja 5 välillä), voit muuttaa viimeisten aaltosulkeiden sisällön muotoon 0,4 (huomaa, että käytät arvoa 0, koska ensimmäinen rivi tulee jo täsmätyksi).

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

Sanamäärä

Seuraava rajoittaa sallittujen sanojen määrän vähintään yhteen ja enintään 200:aan:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
Voit suurentaa vähimmäismäärää muuttamalla lausekkeen {0,199} nolla-osaa.

Voit suurentaa tai pienentää enimmäismäärää muuttamalla lausekkeen {0,199} osaa "199".

Ajan validointi

Kellonaika voidaan kirjoittaa monella tavalla. Mahdollisia vaihtoehtoja ovat esimerkiksi 12 tunnin tai 24 tunnin kello, sekunneilla tai ilman. Vaikka voit käyttää myös päivämääräkysymystyyppiä (se voi tallentaa myös ajan), voit käyttää Lyhyt vapaateksti -kysymystyyppiä jonkin alla olevan validointilausekkeen kanssa.

Seuraavat kolme validointimerkkijonoa tarkistavat 24 tunnin ajan (esiintymisjärjestyksessä) ilman sekunteja, valinnaisilla sekunneilla ja lopuksi pakollisilla sekunneilla:

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

Seuraavat kolme täsmäävät 12 tunnin aikaan, kuten edellä: sekunneilla, valinnaisilla sekunneilla ja pakollisilla sekunneilla:

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

Seuraavat kolme täsmäävät joko 12 tai 24 tunnin aikaan, kuten edellä: sekunneilla, valinnaisilla sekunneilla ja pakollisilla sekunneilla:

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

Yhdysvaltain osavaltiot

Voit tarkistaa yhden osavaltion seuraavasti (esimerkkinä Texas):

  • TX vain isoilla kirjaimilla:
    /^(TX)$/
    
  • tx vain pienillä kirjaimilla:
    /^(tx)$/
    
  • TX isoilla tai pienillä kirjaimilla:
    /^([T|t][X|x])$/
    


Kirosanasuodatin

Näin suodatat kirosanat vastauksesta:

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

Korvaa "ENTERPROFANITYHERE" haluamallasi kirosanalla.

Merkintä \b sallii sellaiset sanat kuin "assassination" ja "hello", vaikka kirosanaksi syöttäisit "ass" tai "hell". Tämä toimii myös, jos haluat estää vastauksista muita sanoja, nimiä tms.


Hyödyllisiä linkkejä

Tämän wiki-osion alussa suosittelemme käyttämään osoitetta https://regex101.com/ säännöllisten lausekkeiden testaamiseen ja luomiseen. Voit myös käyttää osoitetta https://www.regextester.com/ lausekkeiden luomiseen, jos ensimmäinen vaihtoehto ei miellytä. Osoitteessa https://extendsclass.com/regex-tester.html voit havainnollistaa säännöllisiä lausekkeita visuaalisesti.