Actions

Reguláris kifejezések használata

From LimeSurvey Manual

This page is a translated version of the page Using regular expressions and the translation is 100% complete.

A reguláris kifejezéseknek perjellel ("/") kell kezdődniük és befejeződniük. A reguláris kifejezések jó könyvtárát találja a http://www.regexlib.net/ oldalon. Ezek a minták szinte mindig működnek, ha előre ferde vonalak veszik őket körül.

A reguláris kifejezés teszteléséhez használja ezt a regex tesztelőt.

Template:Megjegyzés

  Figyelem : Kérjük, vegye figyelembe, hogy az alábbi példák mindegyike egy sorba van írva!



Fontos: Reguláris kifejezések feltételekben

Vegye figyelembe, hogy ha reguláris kifejezéseket használ a feltételszerkesztőben, NE használja a kezdő és a záró perjelet.


E-mail ellenőrzés

Frissítés (2018. 12.): Manapság a domainnevek nem csak speciális karaktereket tartalmazhatnak, mint például az „ü”, hanem 3-nál több karaktert is használnak domainnévként, például .tech vagy .company, az alábbi e-mail szabályszerű kifejezés csak akkor ellenőrzi, ha „@” és „.” létezik a megadott email címen belül.

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

Ha soronként egy címet szeretne érvényesíteni, többsoros hosszú szövegmezőben:

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

Ennél az elavult regexnél a domain név 3 karakterre korlátozódik, ami nem fedi le az összes elérhető domaint:

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

Irányítószámok

Ausztráliai irányítószámok:

/^[0-9]{4}/

Brazil irányítószámok

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

Kanadai irányítószámok

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

USA irányítószámok

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

Ahhoz, hogy az irányítószám nullával kezdődjön, használja a következőket:

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

UK irányítószámai

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

Vegye figyelembe, hogy ez nem túl pontos, és a pontosabb érvényesítés sokkal összetettebb. További információért lásd például: StackOverflow answer és Wikipedia információ.

Francia irányítószámok

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

A fenti kifejezés nagyon pontos, és ellenőrzi, hogy létezik-e a francia minisztérium (az első két számjegy), beleértve a tengerentúli megyéket és a tengerentúli területeket (DOM-TOM).


Telefonszámok

USA telefonszámok

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

vagy

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

Ez a második lehetőség megfelel minden olyan kanadai és amerikai telefonszámnak, amelyek nem számjegyeket tartalmaznak, beleértve:

. ( ) - (hely)

Ez lehetővé teszi az alábbi telefonszámok egyeztetését:

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

Ausztrál telefonszámok

A következő minták megfelelnek az összes különböző ausztrál mobil és vezetékes telefonszámnak, beleértve a "+61" ország előtagot is:

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

De nem:

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

A zárójeleket, a szóközöket és a kötőjeleket figyelmen kívül hagyja.

Az itt felsorolt „Nagyon precíz:” verziók egy szám első négy vagy öt számjegyével egyeznek, így biztosítva, hogy érvényes ausztrál számok legyenek.

A „Nem túl pontos:” csak az első és a második számjegyhez egyezik, így előfordulhat, hogy helytelen számok is előfordulhatnak.

Minden ausztrál telefonszám (mobil és vezetékes - körzetszám szükséges)

Nagyon precíz:

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

Nem túl pontos:

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

Minden ausztrál telefonszám (csak vezetékes - körzetszám szükséges)

Nagyon precíz:

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

Nem túl pontos:

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

Új-Dél-Wales vezetékes telefonszámai (a körzetszám nem kötelező)

Nagyon precíz:

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

Nem túl pontos:

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

Viktoriánus és tasmán vezetékes telefonszámok (a körzetszám nem kötelező)

Nagyon precíz:

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

Nem túl pontos:

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

Queensland vezetékes telefonszámok (a körzetszám nem kötelező)

Nagyon precíz:

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

Nem túl pontos:

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

Dél-Ausztrália, Északi Terület, Nyugat-Ausztrália vezetékes telefonszámai (a körzetszám nem kötelező)

Nagyon precíz:

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

Nem túl pontos:

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

Csak ausztrál mobiltelefonszámok

Nagyon precíz:

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

Nem túl pontos:

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

Belga telefonszám

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

Belga mobiltelefonszám

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

Francia telefonszám

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

Francia mobiltelefonszám

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

Luxemburg telefonszám

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

Luxemburgi mobiltelefonszám

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

Német jegyek (opcionális plusz vagy mínusz mellett)

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


Életkor érvényesítése

Példa: 20-99

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

Példa: 18-35

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

Példa: 19-65

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


Számérvényesítés

Számok 1-től 99999-ig

 /^([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}$/ ugyanazt csinálja, mint fent, de kicsit gyorsabban kell futnia

Számok 1-től 999-ig, 1000-től 999.999-ig 999.999.999-ig

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

Elfogadja a számokat 1-től 999-ig, 1000-tól 999.999-ig 999.999.999-ig, de elutasítja az olyan számokat, mint a 999.1.1 , 94.22.22, 999.1.22, 999.199.1, 333.1.

Számérvényesítés opcionális tizedesjegyekkel (árért)

0-tól 199-ig számokat fogad el, 2 tizedesjegyet opcionálisan:

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

Számérvényesítés ezerelválasztóval

Szóköz, mint elválasztó, nincs mínusz

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

Pont elválasztóként, mínusz megengedett

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

Két tizedesvesszőt kényszerít ki, és elfogadja az 1,00 és 999 999 999,00 közötti számokat opcionális vesszővel, amely ezreket/milliókat határoló beleértve a következők mindegyikét: 1,00, 1,000,00, 12,345,67, 12345,36,6,50,5 00, 123456789.00 de nem 1 ,23.00, 12,3.4 vagy 1234,43.04

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

Hasonló a fentiekhez: Két tizedesvesszőt kényszerít ki, de elfogad egy "0"-t a "," tizedeselválasztó előtt.

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

Ugyanaz, mint fent, de a két tizedesvessző nem kötelező:

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

Hónap (1-12)

Ha meg szeretné kérdezni egy személy születési hónapját, a következőképpen érvényesítheti a bevitelt:

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

Minimális szélesség (ebben a példában 3-ra állítva)

/^.{3,}$/


Pénznem

USA valuta (dollárjel és cent nem kötelező)

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

Ellenőrizze a vesszőhasználatot:

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

Svájci ár

Két tizedesjegyből álló szám, amelynek a tizedespontja után az utolsó 5 vagy 0:

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


Érvényesség ellenőrzése

1-10

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

1-100

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


Szövegérvényesítés

A több rövid szöveges kérdéstípus jelenleg nem támogatja a minimális vagy maximális válaszokat. Ennek egyik módja egy hosszú szabad szövegű kérdéstípus reguláris kifejezéssel.

Az alábbi kifejezések soronként legalább egy szót tesztelnek legalább 3 és legfeljebb 10 sorban:

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

Ha szeretné, mondjon öt szót soronként, az első és az utolsó csillagot {4,}-re módosíthatja:

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

Ha soronként egy vagy több szót szeretne (az 1. és az 5. sor között), az utolsó kapcsos zárójelben található tartalmat módosíthatja 0,4-re (megjegyzendő, hogy 0-t használ, mert már megegyezik az első sor).

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

Szószám

A következőkben a megengedett szavak számát minimum 1-re és legfeljebb 200-ra korlátozza:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
A minimális érték növeléséhez módosítsa a {0,199} nulla részét.

A maximális érték növeléséhez vagy csökkentéséhez módosítsa a {0,199} „199” részét.

Időérvényesítés

Az időformátumok írásának számos módja van. Néhány lehetséges opció 12 órás vagy 24 órás, másodpercekkel vagy anélkül. Bár lehetőség van a dátum kérdéstípus használata (időt is rögzíthet), használhatja a rövid szabad szöveges kérdéstípus a következőkkel: az alábbi érvényesítési reguláris kifejezéseket.

A következő három érvényesítési sztring 24 órán keresztül tesztel (a megjelenés sorrendjében) másodpercek nélkül, végül opcionális másodpercekkel, és másodpercek szükségesek:

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

A következő három egyezik a 12 órás idővel, mint fent, másodpercekkel, opcionális másodpercekkel és a szükséges másodpercekkel:

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

A következő három 12 vagy 24 órás időnek felel meg a fentiek szerint másodpercekkel, opcionális másodpercekkel és a szükséges másodpercekkel:

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

USA államok

Egy állapot érvényesítéséhez használja a következőket (például Texas):

  • TX csak nagybetűkkel:
     /^(TX)$/
    
  • tx csak kisbetűvel:
     /^(tx)$/
    
  • TX nagy- vagy kisbetűk:
     /^([T|t][X|x])$/
    


Trágárság szűrő

A trágár szavak kiszűrése a válaszból:

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

Cserélje ki az „ENTERPROFANITYHERE” szót a rossz szavára.

A \b lehetővé teszi az olyan szavak átadását, mint a "gyilkosság" és a "hello", ha a "segg" vagy a "pokol" szót írja be trágár szóként. Ez akkor is működik, ha más szavakat, neveket stb. próbál kihagyni a válaszokból.


Hasznos linkek

A wiki szakasz elején azt javasoljuk, hogy használja a https://regex101.com/ oldalt a reguláris kifejezések teszteléséhez/létrehozásához. A https://www.regextester.com/ segítségével kifejezéseket is létrehozhat arra az esetre, ha nem elégedett az első lehetőséggel. A https://extendsclass.com/regex-tester.html segítségével megjelenítheti a reguláris kifejezéseket.