x

Mga pangunahing kabanata

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Gabay sa mabilis na pagsisimula - LimeSurvey 3.0+
  3. Pag-install - LimeSurvey CE
  4. Paano magdisenyo ng magandang survey (gabay)
  5. Pagsisimula
  6. Pangangasiwa sa LimeSurvey
  7. Mga Survey - panimula
  8. Mga setting ng survey
  9. Menu ng survey
  10. Istraktura ng survey
  11. Mga tanong - panimula
  12. Mga pangkat ng tanong - panimula
  13. Mga survey - pamamahala
  14. Mga opsyon ng toolbar ng survey
  15. Multilingual na survey
  16. ExpressionScript Engine - Gabay sa mabilis na pagsisimula
  17. Mga hindi nakategoryang tampok at advanced na tampok
  18. Pangkalahatang FAQ
  19. Pag-troubleshoot
  20. Mga Workaround
  21. Lisensya
  22. Log ng pagbabago ng bersyon
  23. Plugins
 Actions

Paggamit ng regular expressions

From LimeSurvey Manual

Maaaring isinalin ng makina ang pahinang ito at maaaring may mga mali. Ipakita ang orihinal sa Ingles · Pagbutihin ang salin na ito
This page is a translated version of the page Using regular expressions and the translation is 100% complete.

Ang Regular Expressions ay dapat magsimula at magtapos sa forward slash ("/"). Makakahanap ka ng magandang koleksyon ng mga regular expression sa https://www.regexlib.net/. Halos palaging gumagana ang mga pattern na ito kung nakapaloob ang mga ito sa mga forward slash.

Para subukan ang iyong regex, maaari mong gamitin ang regex tester na ito.

Para mapabuti ang bahaging ito ng wiki, hinihiling namin na magdagdag ka ng iyong matagumpay na nasubukang regular expression(s) upang mas maunawaan ng mga bago at potensyal na gumagamit ng LimeSurvey ang feature na ito.
  Atensyon : Pakitandaan na ang lahat ng halimbawa sa ibaba ay nakasulat sa iisang linya!



Mahalaga: Regular Expressions sa mga kondisyon

Tandaan na kapag gumagamit ng regular expressions sa condition editor, HUWAG isama ang panimula at pangwakas na slash.


Pag-validate ng email

Update (12/2018): Dahil sa ngayon ang mga domain name ay maaari nang magkaroon ng mga espesyal na karakter tulad ng “ü” at higit sa 3 karakter bilang domain name tulad ng .tech o .company, ang email regex sa ibaba ay sinusuri lamang kung may “@” at “.” sa ipinasok na email address.

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

Kung nais mong i-validate ang isang address bawat linya, sa isang multiline na field ng mahabang teksto:

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

Sa luma nang regex na ito, limitado sa 3 karakter ang domain name, kaya hindi nito sakop ang lahat ng available na domain:

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

Mga postcode

Mga postcode ng Australia:

/^[0-9]{4}/

Mga postcode ng Brazil

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

Mga postcode ng Canada

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

Mga postal code ng US

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

Para magsimula sa zero ang postal code, gamitin ang:

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

Mga postcode ng UK

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

Tandaan na hindi ito masyadong eksakto, at mas kumplikado ang mas eksaktong pag-validate. Halimbawa, tingnan ang sagot sa StackOverflow at Wikipedia para sa karagdagang impormasyon.

Mga postcode ng France

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

Napakatumpak ng expression sa itaas at susuriin nito kung umiiral ang French Department (unang dalawang digit), kasama ang mga overseas Department at overseas Territory (DOM-TOM).


Mga numero ng telepono

Mga numero ng telepono sa US

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

o

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

Tutugma ang pangalawang opsyon na ito sa lahat ng numero ng telepono sa Canada at US na may kasamang mga simbolong hindi digit, kabilang ang:

 . ( ) - (space)

Magagawa mong itugma ang mga numero ng telepono na kahawig ng nasa ibaba:

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

Mga numero ng telepono sa Australia

Tumutugma ang mga sumusunod na pattern sa iba't ibang mobile at landline na numero ng telepono sa Australia, kasama ang may country prefix na "+61":

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

Ngunit hindi ang:

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

Binabalewala ang mga bracket, espasyo at gitling.

Ang mga bersyong may markang 'Very precise:' (Napakatumpak) na nakalista rito ay tumutugma sa unang apat o limang digit ng isang numero upang matiyak na wastong numero ito sa Australia.

Ang 'Not very precise:' (Hindi gaanong tumpak) ay tumutugma lamang sa una at ikalawang digit, kaya maaari nitong payagan ang mga di-wastong numero.

Lahat ng numero ng telepono sa Australia (mobile at landline - kinakailangan ang area code)

Napakatumpak:

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

Hindi gaanong tumpak:

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

Lahat ng numero ng telepono sa Australia (landline lang - kinakailangan ang area code)

Napakatumpak:

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

Hindi gaanong tumpak:

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

Mga numero ng landline sa New South Wales (opsyonal ang area code)

Napakatumpak:

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

Hindi gaanong tumpak:

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

Mga numero ng landline sa Victoria at Tasmania (opsyonal ang area code)

Napakatumpak:

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

Hindi gaanong tumpak:

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

Mga numero ng landline sa Queensland (opsyonal ang area code)

Napakatumpak:

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

Hindi gaanong tumpak:

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

Mga numero ng landline sa South Australia, Northern Territory, at Western Australia (opsyonal ang area code)

Napakatumpak:

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

Hindi gaanong tumpak:

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

Mga numero ng mobile phone sa Australia lang

Napakatumpak:

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

Hindi gaanong tumpak:

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

Numero ng telepono sa Belgium

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

Numero ng mobile phone sa Belgium

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

Numero ng telepono sa France

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

Numero ng mobile phone sa France

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

Numero ng telepono sa Luxembourg

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

Numero ng mobile phone sa Luxembourg

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

Mga marka sa Germany (may opsyonal na plus o minus)

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


Pag-validate ng edad

Halimbawa: Edad 20-99

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

Halimbawa: Edad 18-35

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

Halimbawa: Edad 19-65

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


Pag-validate ng numero

Mga numero mula 1 hanggang 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

Mga numero mula 1 hanggang 999, 1.000 hanggang 999.999 hanggang 999.999.999

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

Tumatanggap ng mga numero mula 1 hanggang 999, 1.000 hanggang 999.999 hanggang 999.999.999 ngunit tinatanggihan ang mga numerong tulad ng 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333

Pag-validate ng numero na may opsyonal na decimal (para sa presyo)

Tumatanggap ng mga numero mula 0 hanggang 199, na may opsyonal na 2 decimal:

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

Pag-validate ng numero na may thousand separator

Space bilang separator, walang minus

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

Tuldok bilang separator, pinapayagan ang minus

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

Pinipilit nito ang dalawang decimal point at tumatanggap ng mga numero mula 1.00 hanggang 999,999,999.00 na may opsyonal na kuwit na naghihiwalay sa libo/milyon kasama ang lahat ng sumusunod: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00 ngunit hindi ang 1,23.00, 12,3.4 o 1234,43.04

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

Katulad ng nasa itaas: Pinipilit ang dalawang decimal point ngunit tumatanggap ng "0" bago ang decimal separator na ",".

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

Katulad ng nasa itaas, ngunit opsyonal ang dalawang decimal point:

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

Buwan (1-12)

Kung nais mong itanong ang buwan ng kapanganakan ng isang tao, maaari mong i-validate ang input gaya ng sumusunod:

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

Minimum na lapad (nakatakda sa 3 sa halimbawang ito)

/^.{3,}$/


Currency

US currency (opsyonal ang dollar sign at cents)

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

Suriin ang paggamit ng kuwit:

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

Presyong Swiss

Isang numero na may dalawang decimal na numero pagkatapos ng decimal point, kung saan ang huli ay 5 o 0:

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


Pag-validate ng score

1-10

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

1-100

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


Pag-validate ng text

Ang uri ng tanong na Maraming maikling text ay kasalukuyang hindi sumusuporta sa minimum o maximum na sagot. Isang paraan para malampasan ito ay gamitin ang uri ng tanong na Mahabang free text na may regular expression.

Sinusuri ng expression sa ibaba ang hindi bababa sa isang salita bawat linya para sa hindi bababa sa 3 linya at hindi hihigit sa 10 linya:

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

Kung gusto mo, halimbawa, ng limang salita bawat linya, maaari mong palitan ang una at huling star/asterisk ng {4,}:

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

Kung gusto mo ng isa o higit pang salita bawat linya (mula linya 1 hanggang linya 5), maaari mong palitan ang nilalaman sa loob ng huling curly braces ng 0,4 (tandaan na 0 ang ginagamit dahil tinutugma na ang unang linya).

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

Bilang ng salita

Nililimitahan ng sumusunod ang bilang ng mga salitang pinapayagan sa minimum na 1 at maximum na 200:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
Para taasan ang minimum, baguhin ang zero na bahagi ng {0,199}.

Para taasan o bawasan ang maximum, baguhin ang "199" na bahagi ng {0,199}.

Pag-validate ng oras

Maraming paraan para isulat ang format ng oras. Ilan sa mga posibleng opsyon ay 12 oras o 24 oras, may segundo o wala. Bagama't opsyon ang paggamit ng uri ng tanong na petsa (maaari rin itong kumuha ng oras), maaari mong gamitin ang uri ng tanong na Maikling free text na may isa sa mga regular expression para sa pag-validate sa ibaba.

Sinusuri ng sumusunod na tatlong validation string ang 24-oras na oras (ayon sa pagkakasunod) na walang segundo, na may opsyonal na segundo, at panghuli ay may kinakailangang segundo:

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

Tinutugma ng sumusunod na tatlo ang 12-oras na oras, tulad ng nasa itaas, na may segundo, opsyonal na segundo, at kinakailangang segundo:

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

Tinutugma ng sumusunod na tatlo ang alinman sa 12 o 24 oras na oras, tulad ng nasa itaas, na may segundo, opsyonal na segundo, at kinakailangang segundo:

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

Mga estado ng US

Para i-validate ang isang estado, gamitin ang sumusunod (Texas ang halimbawa):

  • TX uppercase lang:
    /^(TX)$/
    
  • tx lowercase lang:
    /^(tx)$/
    
  • TX uppercase o lowercase:
    /^([T|t][X|x])$/
    


Profanity Filter

Para i-filter ang mga bastos na salita mula sa isang sagot:

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

Palitan ang "ENTERPROFANITYHERE" ng bastos na salitang nais mong harangin.

Papayagan ng \b na makapasa ang mga salitang gaya ng "assassination" at "hello" kapag inilagay mo ang "ass" o "hell" bilang bastos na salita. Gumagana rin ito kung nais mong alisin ang iba pang salita, pangalan, atbp. mula sa mga sagot.


Mga kapaki-pakinabang na link

Sa simula ng seksyon ng wiki na ito, inirerekomenda naming gamitin ang https://regex101.com/ para subukan o gumawa ng mga regular expression. Maaari mo ring gamitin ang https://www.regextester.com/ para gumawa ng mga expression kung hindi ka nasiyahan sa unang opsyon. Maaari mong gamitin ang https://extendsclass.com/regex-tester.html para i-visualize ang mga regular expression.