Organisaatiollanne pitää olla päällä dynaamiset kyselyt tämän ominaisuuden käyttämiseen. Täältä löydät tarkempaa tietoa tästä.
Tällä ominaisuudella on mahdollista määrittää sisältövaatimus avoimelle tekstikentälle. Tekstikenttään annetulta vastaukselta voi vaatia, että se sisältää tietyn sanan tai tiettyjä sanoja, tai että se täsmää monimutkaisen merkkien ja numeroiden muodostamaan formaattiin
- Avaa kysely ja lisää siihen avoin tekstikenttä.
- Avaa elementin asetukset hammasrattaasta.
3. Valitse "Syötteen muoto" -kohdasta "Tarkka formaatti".
4. Tällainen näkymä aukeaa:
Yleistä
Säännöllinen lauseke on merkkijono, joka määrittää vaatimuksen, jota vasten toista merkkijonoa voi verrata. Säännölliset lausekkeet voivat tehdä hyvin yksinkertaisia tarkistuksia, kuten että päättyykö syöte tiettyyn sanaan, ja hyvin monimutkaisia tarkistuksia, kuten tarkistaa kirjan ISBN-tunnisteen.
Tässä avoimen tekstikentän asetuksessa voi käyttää kahdenlaisia lausekkeita: yksinkertaisia lausekkeita ja täysiä lausekkeita. Yksinkertaiset lausekkeet toimivat hyvin, jos riittää että syöte alkaa, sisältää tai päättyy tiettyyn sanaan. Jos tarvitsee tarkistaa tiettyjen merkkien määrä, tyyppi ja sijainti, tarvitaan täysiä lausekkeita.
Asetukset
- Lausekkeen tyyppi: tällä voi valita, haluaako käyttää yksinkertaisia vai täysiä lausekkeita nimenomaan tälle tekstikentälle.
- Lauseke: Varsinainen tarkistuslauseke.
- Huomioi kirjainkoko: Kun tämä on valittuna, tarkistus huomioi myös kirjainkoon sekä yksinkertaisissa että täysissä lausekkeissa.
- Kokeile: Tässä kentässä on mahdollista kokeilla tarkistuslauseketta.
- Huomautusviestin kieli ja Huomautusviesti: Tässä voi asettaa kyselyn kieliversioille huomautusviestin, joka näytetään kyselyn vastaajalle, jos hän syöttää vääränlaisen vastauksen.
Yksinkertaiset lausekkeet
Yksinkertaisisa lausekkeissa voi käyttää tähtimerkki * vastaamaan mitä tahansa merkkijonoa, mukaanlukien tyhjän merkkijonon. Tämän avulla voi esimerkiksi tarkistaa, onko syötetty vastaus sähköpostiosoite tietystä osoitteesta.
- *@osoite.fi
- Tämä lauseke vaatii, että annettu vastaus päättyy merkkijonoon "@osoite.fi".
On myös mahdollista liittää vaihtoehtoisia yksinkertaisia lausekkeita erotellen ne sanalla " OR ". Jos esimerkiksi yhtiöllä on useita sähköpostidomaineja, tällä voi vaatia, että annettu vastaus on sähköpostiosoite mistä tahansa niistä
- *@yritys.fi OR *@lacompagnia.it OR *@bolaget.se
- Tämä lauseke vaatii, että vastaus on sähköpostiosoite joko osoitteesta yritys.fi, osoitteesta lacompagnia.it tai osoitteesta bolaget.se.
Jos "OR"-sanaa käyttää ilman että sen molemmilla puolilla on lauseketta, se käsitetään virheellisenä lausekkeena.
Huom.! Avainsana "OR" on monille tuttu esimerkiksi tietokantahauista. Tämän vuoksi jotkut saattavat yrittää käyttää muitakin avainsanoja, kuten sanaa "AND". Yksinkertaisissa lausekkeissa ei kuitenkaan ole muita avainsanoja, koska esimerkiksi "AND"-sanalla voi saada aikaiseksi vain ristiriitaisia vaatimuksia tai sellaisia vaatimuksia, jotka ovat mahdollisia myös ilman avainsanaa.
- *@yritys.fi AND *@lacompagnia.it
- Tämä lauseke vaatisi, että syöte päättyy sekä sanaan @company.com että sanaan @lacompagnia.it, mikä on ristiriitaista ja siten mahdotonta.
- ensimmäinensana* AND *viimeinensana
- Tämä lauseke on vaikutukseltaan sama kuin ensimmäinensana*viimeinensana.
Täydet säännölliset lausekkeet
Täysissä säännöllisissä lausekkeissa on käytettävissä kaikki JavaScriptin säännöllisten lausekkeiden ominaisuudet. Tässä kuvataan näistä ominaisuuksista vain niitä, jotka ovat yleisimmin tarvittuja avoimen tekstikentän vastauksen tarkistukseen.
Alku ja loppu
Syötteen alku merkitään merkillä ^ ja loppu merkillä $.
On tavallista vaatia, että syöte ei sisällä muuta kuin tietyn formaatin mukaisen sisällön.
Täten esimerkiksi lauseke ^ABC$ vaatisi koko syötteen olevan pelkästään "ABC".
Jokerimerkit ja merkkiluokat
Jokerimerkit ovat merkkejä, jotka voivat vastata kirjoitusmerkkien luokkia, kuten "mikä tahansa numero" tai "mikä tahansa välilyöntimerkki". Yksinkertaisissa lausekkeissa tähtimerkki on jokerimerkki, joka vastaa "mitä tahansa merkkijonoa".
- .
- Yleisimmin piste merkitsee mitä tahansa yksittäistä merkkiä. Tämän ulkopuolelle kuitenkin jäävät rivinvaihtomerkit. Esimerkiksi lauseke .t täsmää merkkijonojen "nt" ja "ot" kanssa syötteessä "mentiin kotiin".
- \d
- Kenoviiva-d merkitsee mitä tahansa arabialaista numeromerkkiä eli numeroita 0-9. Esimerkiks \d täsmää 4:n kanssa syötteessä"A4-paperikoko".
- \w
- Kenoviiva-w merkitsee mitä tahansa alfanumeerista merkkiä latinalaisesta aakkostosta, toisin sanottuna numeromerkkiä 0-9 ja kirjainta A-Z niin isona kuin pienenä. Tämä siis jättää pois esimerkiksi suomen ja ruotsin kirjaimia Å, Ä ja Ö.
- [ ]
- Hakasulkeilla voi luoda omat merkkiluokan Esimerkiksi [AEIOUYÅÄÖ] merkitsee mitä tahansa suomen vokaalikirjainta isona.
- On mahdollista määrittää myös alueita. Esimerkiksi [D-H] merkitsee mitä tahansa kirjainta väliltä D-H isona.
- Yksittäiset merkit ja alueet on mahdollista yhdistää. Esimerkiksi [D-H13579] merkitsee mitä tahansa kirjainta välillä D-H isona tai mitä tahansa paritonta numeroa.
- Valmiita merkkiluokkia voi myös käyttää hakasulkeiden sisällä. Esimerkiksi [AEIOUYÅÄÖ\d] merkitsee mitä tahansa suomen vokaalikirjainta taikka mitä tahansa numeromerkkiä.
- Huomaa, että alueet koskevat vain yksittäisiä kirjoitusmerkkejä, ei kokonaisia lukuja. Esimerkiksi [0-99] tarkoittaa mitä tahansa numeroa väliltä 0-9 tai yksittäistä 9-numeroa. Se ei siis tarkoita mitä tahansa lukua väliltä 0-99.
Toistot
Kaikki merkkityyppien jokerimerkit vastaavat vain yksittäistä merkkiä. On mahdollista määrittää, että jotain merkkityyppiä on toistuttava. Toistomääritys määrittää, että määrityksen edessä oleva merkki tai merkkiluokka toistuu tietyn määrän kertoja.
- *
- Tähtimerkki määrittää, että edeltävä merkki tai merkkityyppi voi toistua minkä tahansa määrän kertoja, mukaanlukien ei yhtään kertaa. Esimerkiksi, a* täsmää sanoihin "Mali", "maali" ja "maaaaaaliiiii!!".
- +
- Plus-merkki määrittää, että edeltävän merkin tai merkkityypin on oltava paikallaan vähintään kerran. Esimerkiksi o+ täsmää sanoihin "koura" ja "kooooura" mutta ei sanaan "kura".
- { }
- Aaltosulkeilla voi määrittää vapaavalintaisen määrän kertoja, mitä edeltävän merkin tai merkkijuokan täytyy esiintyä peräkkäin.
- {n} tarkoittaa, että edeltävän merkin tai merkkiluokan täytyy toistua tismalleen n
- {n,} tarkoittaa, että edeltävän merkin tai merkkiluokan täytyy toistua vähintään n
- {n,m} tarkoittaa, että edeltävän merkin tai merkkiluokan täytyy toistua vähintään n kertaa ja enintään m
Toistomerkit yhdistyvät jokerimerkkien ja merkkiluokkien kanssa näin:
- \d{4}
- Vastaa mitä tahansa numeromerkkiä tasan neljä kertaa. Itse numero voi kullakin kerralla olla eri.
- [AEIOUYÅÄÖ]+
- vastaa mitä tahansa suomen vokaalikirjainta vähintään kerran.
- .*
- vastaa mitä tahansa merkkiä ja merkkityyppiä minkä tahansa määrän kertojan, mukaan lukien ei yhtään kertaa. Tämä vastaa yksinkertaisten lausekkeiden tähtimerkkiä *.
Ryhmät ja vaihtoehdot
Jonossa olevia merkkejä voi yhdistää niin, että mahdollinen toistomerkki kattaa useammankin kuin vain yksittäisen merkin. Ryhmä ympäröidään kaarisulkeilla ( ). Esimerkiksi:
- (viisi){5}
- vastaa sanaa "viisi" toistettuna viisi kertaan.
Vaihtoehdot erotellaan putkimerkillä |.
- (laaja|kapea)kaista
- täsmää vaihtoehtoisesti sanan "laajakaista" tai "kapeakaista" kanssa.
Ryhmiä voi myös ryhmittää keskenään ja määrittää toistensa vaihtoehdoiksi.
- ((viisi){5}|(neljä){4})
- tarkoittaa, että sana "viisi" toistuu viisi kertaa tai sana "neljä" toistuu neljä kertaa.
Erikoismerkkien suojaus
Jos lausekkeen on tarkistettava syötteestä näitä erikoismerkkejä, ne voidaan suojata kenoviivalla \ erikoismerkin edessä. Esimerkiksi \. etsii nimenomaan pistettä eikä "mitä tahansa yksittäistä merkkiä".
Huomaa, että kenoviiva itsessään on erikoismerkki. Kenoviiva suojataan samoin kenoviivalla: \\.
Lausekkeen rakentaminen ja esimerkkilausekkeita
Näitä määrityksiä voi sijoittaa peräkkäin, ja lauseke testataan syötteen jokaista kohtaa kohden. Jos yksikin täsmäys löytyy, syöte käsitetään täsmäävän lausekkeen kanssa.
Rakentakaamme esimerkiksi lauseke, joka vaatii, että syötteessä on vuorotellen vokaalikirjain ja numeromerkki kolme kertaa.
Vokaalimerkki ilmaistaan merkinnällä [AEIOUYÅÄÖ] ja numeromerkki ilmaistaan merkinnällä \d. Täten vokaalimerkki ja numeromerkki peräkkäin ilmaistaan merkinnällä [AEIOUYÅÄÖ]\d.
Näiden toistamisen määrittämiseksi ne on ryhmitettävä: ([AEIOUYÅÄÖ]\d)
Lopuksi lisätään toistomääritys: ([AEIOUYÅÄÖ]\d){3}.
Tämä lauseke täsmää minkä tahansa sellaisen syötteen kanssa, joka sisältää missä tahansa kohdassa pätkän, jossa vokaalikirjain ja numeromerkki toistuu kolme kertaa. Jos haluamme, että syöte ei sisällä mitään muuta, siihen on lisättä aloitus- ja lopetusmerkit: ^([AEIOUYÅÄÖ]\D){3}$
Tässä on joitakin mallilausekkeita. Jotkut ovat melko yksinkertaisia, ja jotkut ovat hyvinkin monimutkaisia ja saattavat käyttää sellaisia säännöllisten lausekkeiden ominaisuuksia, joita ei tässä artikkelissa ole käsitelty.
- ^((0[1-9])|(1[0-2]))[-\/]\d\d$
- vaatii että syöte on luottokortin kolminumeroinen turvanumero.
- ^[A-ZÅÄÖ]{1,3}\-([1-9]\d{0,2})$
- vaatii, että syöte on suomalainen auton rekisteritunnus.
- ^((.*)@yritys\.fi|(.*)@lacompagnia\.it)$
- on täysien lausekkeiden vastine yksinkertaisten lausekkeiden lausekkeelle *@yritys.fi OR *@lacompagnia.it.
- ^(?:ISBN(?:-1[03])?:? )?(?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$|97[89][0-9]{10}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)(?:97[89][- ]?)?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]$
- vaatii, että syöte on kirjan ISBN-tunnus.
- Huomaa, että ISBN-tunnus sisältää tarkistussumman, eli yksi merkeistä riippuu kaikista muista merkeistä kirjoitusvirheen ehkäisemiseksi. Säännöllisillä lausekkeilla ei voi toteuttaa tarkistussummia, joten tämä lauseke tarkistaa vain itse formaatin.
- ^((((0?[1-9])|([1-2][0-9])|(30))\.((0?)4|(0?)6|(0?)9|11))|(((0?[1-9])|([1-2][0-9])|(3[01]))\.((0?)1|(0?)3|(0?)5|(0?)7|(0?)8|10|12))|(((0?[1-9])|([1-2][0-9]))\.((0?)2)))\.(19([0-9][0-9])|20([0-1][0-9]|20))$
- vaatii, että syöte on päivämäärä formaatilla DD.MM.YYYY vuodesta 1900 vuoteen 2020.
- Tämä lauseke ei tarkista karkauspäiviä karkausvuosien ulkopuolella.