x

Bab utama

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Panduan permulaan pantas - LimeSurvey 3.0+
  3. Pemasangan - LimeSurvey CE
  4. Cara mereka bentuk tinjauan yang baik (panduan)
  5. Bermula
  6. Mentadbir LimeSurvey
  7. Tinjauan - pengenalan
  8. Tetapan tinjauan
  9. Menu tinjauan
  10. Struktur tinjauan
  11. Soalan - pengenalan
  12. Kumpulan soalan - pengenalan
  13. Tinjauan - pengurusan
  14. Pilihan bar alat tinjauan
  15. Tinjauan berbilang bahasa
  16. Enjin ExpressionScript - Panduan mula pantas
  17. Ciri tidak dikategorikan dan ciri lanjutan
  18. Soalan Lazim Umum
  19. Penyelesaian Masalah
  20. Penyelesaian sementara
  21. Lesen
  22. Tukar log versi
  23. Pemalam
 Actions

Menggunakan ekspresi lazim

From LimeSurvey Manual

Halaman ini mungkin telah diterjemahkan oleh mesin dan mungkin mengandungi ralat. Papar teks asal bahasa Inggeris · Perbaiki terjemahan ini
This page is a translated version of the page Using regular expressions and the translation is 100% complete.

Ekspresi lazim mesti bermula dan berakhir dengan garis condong ke hadapan ("/"). Anda boleh mendapatkan pustaka ekspresi lazim yang baik di https://www.regexlib.net/. Corak ini hampir selalu berfungsi jika diapit oleh garis condong ke hadapan.

Untuk menguji regex anda, anda boleh menggunakan penguji regex ini.

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.
  Perhatian : Sila ambil perhatian bahawa semua contoh di bawah ditulis dalam satu baris!



Penting: Ekspresi lazim dalam syarat

Perhatikan bahawa apabila menggunakan ekspresi lazim dalam editor syarat, JANGAN sertakan garis condong di awal dan di akhir.


Pengesahan e-mel

Kemas kini (12/2018): Memandangkan kini nama domain bukan sahaja boleh mengandungi aksara khas seperti “ü” tetapi juga menggunakan lebih daripada 3 aksara sebagai nama domain seperti .tech atau .company, regex e-mel di bawah hanya menyemak sama ada “@” dan “.” wujud dalam alamat e-mel yang dimasukkan.

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

Jika anda ingin mengesahkan satu alamat setiap baris, dalam medan teks panjang berbilang baris:

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

Pada regex lapuk ini, nama domain terhad kepada 3 aksara, yang tidak merangkumi semua domain yang ada:

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

Poskod

Poskod Australia:

/^[0-9]{4}/

Poskod Brazil

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

Poskod Kanada

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

Poskod AS

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

Untuk poskod yang bermula dengan sifar, gunakan:

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

Poskod UK

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

Perhatikan bahawa ini tidak begitu tepat, dan pengesahan yang lebih tepat adalah jauh lebih rumit. Contohnya, lihat jawapan StackOverflow dan Wikipedia untuk maklumat lanjut.

Poskod Perancis

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

Ungkapan di atas sangat tepat dan akan menyemak sama ada Jabatan Perancis wujud atau tidak (dua digit pertama), termasuk Jabatan seberang laut dan Wilayah seberang laut (DOM-TOM).


Nombor telefon

Nombor telefon AS

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

atau

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

Pilihan kedua ini akan memadankan semua nombor telefon Kanada dan AS yang mengandungi simbol bukan digit termasuk:

 . ( ) - (space)

Ini membolehkan anda memadankan nombor telefon yang menyerupai yang berikut:

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

Nombor telefon Australia

Corak berikut memadankan pelbagai nombor telefon mudah alih dan talian tetap Australia termasuk dengan awalan negara "+61":

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

Tetapi tidak:

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

Tanda kurung, ruang kosong dan tanda sempang diabaikan.

Versi 'Sangat tepat:' yang disenaraikan di sini memadankan empat atau lima digit pertama dalam sesuatu nombor untuk memastikan nombor tersebut ialah nombor Australia yang sah.

Versi 'Kurang tepat:' hanya memadankan digit pertama dan kedua, jadi nombor yang tidak sah mungkin dibenarkan.

Semua nombor telefon Australia (mudah alih dan talian tetap - kod kawasan diperlukan)

Sangat tepat:

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

Kurang tepat:

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

Semua nombor telefon Australia (talian tetap sahaja - kod kawasan diperlukan)

Sangat tepat:

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

Kurang tepat:

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

Nombor telefon talian tetap New South Wales (kod kawasan pilihan)

Sangat tepat:

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

Kurang tepat:

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

Nombor telefon talian tetap Victoria dan Tasmania (kod kawasan pilihan)

Sangat tepat:

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

Kurang tepat:

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

Nombor telefon talian tetap Queensland (kod kawasan pilihan)

Sangat tepat:

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

Kurang tepat:

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

Nombor telefon talian tetap South Australia, Northern Territory, Western Australia (kod kawasan pilihan)

Sangat tepat:

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

Kurang tepat:

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

Nombor telefon mudah alih Australia sahaja

Sangat tepat:

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

Kurang tepat:

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

Nombor telefon Belgium

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

Nombor telefon mudah alih Belgium

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

Nombor telefon Perancis

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

Nombor telefon mudah alih Perancis

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

Nombor telefon Luxembourg

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

Nombor telefon mudah alih Luxembourg

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

Gred Jerman (dengan tanda tambah atau tolak pilihan)

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


Pengesahan umur

Contoh: Umur 20-99

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

Contoh: Umur 18-35

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

Contoh: Umur 19-65

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


Pengesahan nombor

Nombor dari 1 hingga 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

Nombor dari 1 hingga 999, 1.000 hingga 999.999 hingga 999.999.999

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

Menerima nombor dari 1 hingga 999, 1.000 hingga 999.999 hingga 999.999.999 tetapi menolak nombor seperti 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333

Pengesahan nombor dengan perpuluhan pilihan (untuk harga)

Menerima nombor dari 0 hingga 199, dengan 2 tempat perpuluhan secara pilihan:

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

Pengesahan nombor dengan pemisah ribu

Ruang sebagai pemisah, tanpa tanda tolak

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

Titik sebagai pemisah, tanda tolak dibenarkan

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

Ia memaksa dua tempat perpuluhan dan menerima nombor dari 1.00 hingga 999,999,999.00 dengan koma pilihan sebagai pemisah ribu/juta termasuk semua yang berikut: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00 tetapi bukan 1,23.00, 12,3.4 atau 1234,43.04

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

Serupa dengan di atas: Memaksa dua tempat perpuluhan tetapi menerima "0" sebelum pemisah perpuluhan ",".

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

Sama seperti di atas, tetapi dua tempat perpuluhan adalah pilihan:

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

Bulan (1-12)

Jika anda ingin bertanya tentang bulan kelahiran seseorang, anda boleh mengesahkan input seperti berikut:

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

Lebar minimum (ditetapkan kepada 3 dalam contoh ini)

/^.{3,}$/


Mata wang

Mata wang AS (tanda dolar dan sen adalah pilihan)

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

Semak penggunaan koma:

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

Harga Switzerland

Nombor dengan dua digit perpuluhan selepas titik perpuluhan, dengan digit terakhir sama ada 5 atau 0:

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


Mengesahkan skor

1-10

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

1-100

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


Pengesahan teks

Jenis soalan Teks pendek berbilang buat masa ini tidak menyokong jawapan minimum atau maksimum. Satu cara untuk mengatasinya ialah menggunakan jenis soalan Teks bebas panjang dengan ekspresi lazim.

Ungkapan di bawah menguji sekurang-kurangnya satu perkataan setiap baris untuk sekurang-kurangnya 3 baris dan tidak lebih daripada 10 baris:

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

Jika anda mahu, katakan lima perkataan setiap baris, anda boleh menukar bintang/asterisk pertama dan terakhir kepada {4,}:

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

Jika anda mahukan satu perkataan atau lebih setiap baris (antara baris 1 dan baris 5), anda boleh menukar kandungan di dalam kurungan kurawal yang terakhir kepada 0,4 (perhatikan bahawa anda menggunakan 0 kerana baris pertama sudah dipadankan).

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

Kiraan perkataan

Yang berikut mengehadkan bilangan perkataan yang dibenarkan kepada minimum 1 dan maksimum 200:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
Untuk meningkatkan minimum, tukar bahagian sifar dalam {0,199}.

Untuk meningkatkan atau mengurangkan maksimum, tukar bahagian "199" dalam {0,199}.

Pengesahan masa

Terdapat beberapa cara untuk menulis format masa. Antara pilihan yang mungkin ialah 12 jam atau 24 jam, dengan saat atau tanpa saat. Walaupun anda boleh menggunakan jenis soalan tarikh (ia juga boleh menangkap masa), anda boleh menggunakan jenis soalan Teks percuma pendek dengan salah satu ekspresi lazim pengesahan di bawah.

Tiga rentetan pengesahan berikut menguji masa 24 jam (mengikut susunan kemunculan) tanpa saat, dengan saat pilihan dan akhir sekali dengan saat diperlukan:

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

Tiga yang berikut memadankan masa 12 jam, seperti di atas dengan saat, saat pilihan dan saat diperlukan:

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

Tiga yang berikut memadankan sama ada masa 12 atau 24 jam seperti di atas dengan saat, saat pilihan dan saat diperlukan:

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

Negeri AS

Untuk mengesahkan satu negeri, gunakan yang berikut (contohnya Texas):

  • TX huruf besar sahaja:
    /^(TX)$/
    
  • tx huruf kecil sahaja:
    /^(tx)$/
    
  • TX huruf besar atau kecil:
    /^([T|t][X|x])$/
    


Penapis kata kesat

Untuk menapis kata kesat daripada sesuatu jawapan:

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

Gantikan "ENTERPROFANITYHERE" dengan perkataan buruk anda.

\b akan membenarkan perkataan seperti "assassination" dan "helo" lulus jika anda memasukkan "ass" atau "hell" sebagai kata kesat anda. Ini juga berfungsi jika anda cuba mengecualikan perkataan lain, nama dan sebagainya daripada jawapan.


Pautan berguna

Pada permulaan bahagian wiki ini, kami mengesyorkan anda menggunakan https://regex101.com/ untuk menguji/mencipta ungkapan nalar. Anda juga boleh menggunakan https://www.regextester.com/ untuk mencipta ungkapan sekiranya anda tidak berpuas hati dengan pilihan pertama. Anda boleh menggunakan https://extendsclass.com/regex-tester.html untuk menggambarkan ungkapan nalar secara visual.