Тогтмол хэмжигдэхүүнийг ашиглах нь
From LimeSurvey Manual
Тогтмол хэмжигдэхүүн нь налуу зураасаар ("/") эхэлж, төгсөх ёстой. Тогтмол хэмжигдэхүүний сайн сан хөмрөгийг https://www.regexlib.net/ хаягаас олж болно. Эдгээр загварыг налуу зураасаар хүрээлсэн тохиолдолд бараг үргэлж ажиллана.
Өөрийн regex-ийг турших бол энэ regex шалгагчийг ашиглаж болно.
Чухал: Нөхцөл дэх тогтмол хэмжигдэхүүн
Нөхцөл засварлагчид тогтмол хэмжигдэхүүн ашиглаж байгаа бол эхлэх болон төгсөх налуу зураасыг ОРУУЛАХГҮЙ гэдгийг анхаарна уу.
Цахим шуудангийн баталгаажуулалт
Шинэчлэлт (2018/12): Домэйн нэр одоо “ü” зэрэг тусгай тэмдэгт агуулахаас гадна .tech эсвэл .company шиг 3-аас илүү тэмдэгттэй байж болдог тул доорх цахим шуудангийн regex нь оруулсан цахим шуудангийн хаягт зөвхөн “@” болон “.” байгаа эсэхийг шалгана.
/^.+?@.+?\..+$/
Олон мөрт урт текст талбарт мөр бүрт нэг хаяг баталгаажуулах бол:
/^(((\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*(\r\n)?\n?)+)*)$/
Энэ хуучирсан regex-д домэйн нэр 3 тэмдэгтээр хязгаарлагддаг тул боломжит бүх домэйныг хамрахгүй:
/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,3})$/
Шуудангийн код
Австралийн шуудангийн код:
/^[0-9]{4}/
Бразилийн шуудангийн код
/^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/
Канадын шуудангийн код
/^[a-zA-Z]\d{1}[a-zA-Z](\-| |)\d{1}[a-zA-Z]\d{1}$/
АНУ-ын шуудангийн код
/^[0-9]{5}([- /]?[0-9]{4})?$/
Шуудангийн код тэгээр эхлэхийг хүсвэл дараахыг ашиглана уу:
/^[0-9]{5}(?:-[0-9]{4})?$/
Их Британийн шуудангийн код
/^[A-Z][A-Z]?[0-9][A-Z0-9]? ?[0-9][ABDEFGHJLNPQRSTUWXYZ]{2}$/i
Энэ нь маш нарийн биш бөгөөд илүү нарийн баталгаажуулалт хамаагүй төвөгтэй гэдгийг анхаарна уу. Жишээлбэл, дэлгэрэнгүй мэдээллийг StackOverflow-ийн хариулт болон Wikipedia хуудгаас үзнэ үү.
Францын шуудангийн код
/(^[0-8]\d\d{3}$)|(^9[0-5]\d{3}$)|(^97[1-6]\d{2}$)|(^98[46-8]\d{2}$)/
Дээрх илэрхийлэл маш нарийн бөгөөд Францын департамент (эхний хоёр орон), тэр дундаа хилийн чанад дахь департамент болон нутаг дэвсгэрүүд (DOM-TOM) байгаа эсэхийг шалгана.
Утасны дугаар
АНУ-ын утасны дугаар
/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/
эсвэл
/^[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{3}[\(\)\.\- ]{0,}[0-9]{4}[\(\)\.\- ]{0,}$/
Энэ хоёр дахь хувилбар нь тооноос бусад дараах тэмдэгт агуулсан Канад болон АНУ-ын бүх утасны дугаарт тохирно:
. ( ) - (space)
Энэ нь доорхтой төстэй утасны дугаарт тохирох боломжийг олгоно:
- (555)555 5555
- 555.555.5555
- 555 555 5555
- (555)-555-5555
- 555-555-5555
- 555555555
Австралийн утасны дугаар
Дараах загварууд нь "+61" улсын угтвартай бүхий Австралийн бүх төрлийн гар утас болон суурин утасны дугаарт тохирно:
- (02) 9123 6535
- 03 1234-5345
- 0412 345 678
- +61 2 3456 789
Харин дараахад тохирохгүй:
- 234 3450 234
- a234 534 3432
- 134567
- 123456789013
Хаалт, хоосон зай болон зураас тооцогдохгүй.
Энд жагсаасан 'Маш нарийн:' хувилбарууд нь дугаарын эхний дөрвөн эсвэл таван оронтой тоог шалгаж, Австралийн хүчинтэй дугаар мөн эсэхийг баталгаажуулдаг.
'Нарийн биш:' хувилбарууд нь зөвхөн эхний болон хоёр дахь цифрийг шалгадаг тул буруу дугааруудыг зөвшөөрч магадгүй.
Австралийн бүх утасны дугаар (мобайл болон суурин - бүсийн код шаардлагатай)
Маш нарийн:
/^\(?(?:\+?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})$/
Нарийн биш:
/^(?:\+?61|0)[2-478](?:[ -]?[0-9]){8}$/
Австралийн бүх утасны дугаар (зөвхөн суурин утас - бүсийн код шаардлагатай)
Маш нарийн:
/^\(?(?:\+?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}$/
Нарийн биш:
/^(?:\+?61|\(?0)[2378]\)?(?:[ -]?[0-9]){8}$/
Шинэ Өмнөд Уэльсийн суурин утасны дугаар (бүсийн код заавал биш)
Маш нарийн:
/^(?:\(?(?:\+?61|0)2\)?[ -]?)?(?:3[ -]?[38]|[46-9][ -]?[0-9]|5[ -]?[0-35-9])(?:[ -]?[0-9]){6}$/
Нарийн биш:
/^(?:\(?(?:\+?61|0)2\)?(?:[ -]?[0-9]){7}[0-9]$/
Виктория болон Тасманийн суурин утасны дугаар (бүсийн код заавал биш)
Маш нарийн:
/^(?:\(?(?:\+?61|0)3\)?[ -]?)?(?:4[ -]?[0-57-9]|[57-9][ -]?[0-9]|6[ -]?[1-67])(?:[ -]?[0-9]){6}$/
Нарийн биш:
/^(?:\(?(?:\+?61|0)3\)?(?:[ -]?[0-9]){7}[0-9]$/
Квинслендийн суурин утасны дугаар (бүсийн код заавал биш)
Маш нарийн:
/^(?:\(?(?:\+?61|0)7\)?[ -]?)?(?:[2-4][ -]?[0-9]|5[ -]?[2-7]|7[ -]?6)(?:[ -]?[0-9]){6}$/
Нарийн биш:
/^(?:\(?(?:\+?61|0)7\)?(?:[ -]?[0-9]){7}[0-9]$/
Өмнөд Австрали, Умард нутаг, Баруун Австралийн суурин утасны дугаар (бүсийн код заавал биш)
Маш нарийн:
/^(?:\(?(?:\+?61|0)8\)?[ -]?)?(?:5[1-4]|6[0-8]|[7-9][0-9])$/
Нарийн биш:
/^(?:\(?(?:\+?61|0)8\)?(?:[ -]?[0-9]){7}[0-9]$/
Зөвхөн Австралийн мобайл утасны дугаар
Маш нарийн:
/^(?:\+?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}$/
Нарийн биш:
/^(?:\(?(?:\+?61|0)4\)?(?:[ -]?[0-9]){7}[0-9]$/
Бельгийн утасны дугаар
/^((\+|00)32\s?|0)(\d\s?\d{3}|\d{2}\s?\d{2})(\s?\d{2}){2}$/
Бельгийн мобайл утасны дугаар
/^((\+|00)32\s?|0)4(60|[789]\d)(\s?\d{2}){3}$/
Францын утасны дугаар
/^((\+|00)33\s?|0)[1-59](\s?\d{2}){4}$/
Францын мобайл утасны дугаар
/^((\+|00)33\s?|0)[67](\s?\d{2}){4}$/
Люксембургийн утасны дугаар
/^((\+|00\s?)352)?(\s?\d{2}){3,4}$/
Люксембургийн мобайл утасны дугаар
/^((\+|00\s?)352)?\s?6[269]1(\s?\d{3}){2}$/
Германы дүн (нэмэх эсвэл хасах тэмдэг заавал биш)
/^[1-6]{1}[\+|\-]?$/
Насны баталгаажуулалт
Жишээ: 20-99 нас
/([2-9][0-9])/
Жишээ: 18-35 нас
/(1[8-9]|2[0-9]|3[0-5])/
Жишээ: 19-65 нас
/^(1[8-9]|[2-5][0-9]|6[0-5])$/
Тооны баталгаажуулалт
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
1-ээс 999, 1.000-аас 999.999, 999.999.999 хүртэлх тоонууд
/^[1-9][0-9]{0,2}(?:\.[0-9]{3}){0,2}$/
1-ээс 999, 1.000-аас 999.999, 999.999.999 хүртэлх тоог зөвшөөрнө, харин 999.1.1 , 94.22.22, 999.1.22, 999.11.1, 999.1.333 зэрэг тоог хүлээн авахгүй
Сонголтоор аравтын бутархайтай тоог баталгаажуулах (үнэд зориулсан)
0-ээс 199 хүртэлх тоог хүлээн авна, 2 аравтын орон нь заавал биш:
/^([1][0-9][0-9]|[1-9][0-9]|[0-9])((\.)[0-9][0-9])?$/
Мянгатын тусгаарлагчтай тоог баталгаажуулах
Тусгаарлагч нь хоосон зай, хасах тэмдэггүй
/^(?!0)\d{1,3}(\ \d{3})*$/
Тусгаарлагч нь цэг, хасах тэмдэг зөвшөөрөгдөнө
/^-?(?!0)\d{1,3}(\.\d{3})*$/
Энэ нь аравтын орон хоёрыг заавал шаардаж, мянга/сая бүлгийг тусгаарлах таслалтай эсвэл таслалгүй 1.00-аас 999,999,999.00 хүртэлх тоог хүлээн авна. Дараах бүгдийг хүлээн авна: 1.00, 1,000.00, 12,345.67, 12345,02, 123,456,468.00, 1234566.00, 123456789.00 харин 1,23.00, 12,3.4 эсвэл 1234,43.04 зэргийг хүлээн авахгүй
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/
Дээрхтэй төстэй: аравтын орон хоёрыг заавал шаардах боловч "," аравтын тусгаарлагчийн өмнө "0"-г хүлээн авна.
/[0-9]{0,2}(?:,?[0-9]{3}){0,3}\.[0-9]{2}$/
Дээрхтэй адил, гэхдээ хоёр аравтын орон нь заавал биш:
/^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(?:\.[0-9]{2})?$/
Сар (1-12)
Хэрэв хүний төрсөн сарыг асуумаар байвал оруулсан утгыг дараах байдлаар баталгаажуулж болно:
/^[0]*[1-9]$|^[0]*1[0-2]$/
Хамгийн бага өргөн (энэ жишээнд 3 гэж тохируулсан)
/^.{3,}$/
Валют
АНУ-ын валют (доллар тэмдэг болон центийг оруулах эсэх нь сонголттой)
/^\$?\d+(\.(\d{2}))?$/
Таслалын хэрэглээг шалгах:
/^\$?\d{1,3}(\d+(?!,))?(,\d{3})*(\.\d{2})?$/
Швейцарын үнэ
Аравтын цэгийн дараа хоёр орон бүхий тоо бөгөөд сүүлийн орон нь 5 эсвэл 0 байна:
/^(\d+)(\.\d(05)?)?$/
Оноог баталгаажуулах
1-10
/^[1-9]{1}$|^10$/
1-100
/^[1-9]?[0-9]{1}$|^100$/
Текстийг баталгаажуулах
Олон тооны богино текст асуултын төрөл нь одоогоор хамгийн бага эсвэл хамгийн их хариултыг дэмждэггүй. Үүнийг тойрох нэг арга бол Үнэгүй урт текст асуултын төрөл-ийг тогтмол илэрхийлэлтэй хамт ашиглах явдал юм.
Доорх илэрхийлэл нь мөр бүрт дор хаяж нэг үг байгаа эсэхийг, нийт 3-аас доошгүй, 10-аас илүүгүй мөр байгаа эсэхийг шалгана:
/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){2,10}/is
Хэрэв мөр бүрт жишээлбэл тав дахь үг хэрэгтэй бол эхний болон сүүлийн од (*) тэмдгийг {4,} болгож өөрчилж болно:
/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+){4,})){2,10}/is
Хэрэв мөр бүрт нэг буюу түүнээс олон үг (1-ээс 5-р мөрийн хооронд) байхыг хүсвэл хамгийн сүүлийн буржгар хаалт доторх утгыг 0,4 болгож өөрчилж болно (эхний мөрийг аль хэдийн тааруулж байгаа тул 0-г ашиглаж байгааг анхаараарай).
/(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)(?:[,.;:?!& \n\r]?(?:\n|\r|\n\r|\r\n)(?:[^,.;:?!& \n\r]+(?: [^,.;:?!& \n\r]+)*)){0,4}/is
Үгийн тоо
Дараах илэрхийлэл нь зөвшөөрөгдөх үгийн тоог хамгийн багадаа 1, хамгийн ихдээ 200 байхаар хязгаарлана:
/^[-\w]+(?:\W+[-\w]+){0,199}\W*$/
Хамгийн бага утгыг нэмэгдүүлэхийн тулд {0,199}-ийн тэг хэсгийг өөрчилнө үү.
Хамгийн их утгыг нэмэгдүүлэх эсвэл бууруулахын тулд {0,199}-ийн "199" хэсгийг өөрчилнө үү.
Цагийг баталгаажуулах
Цагийн форматыг бичих олон арга бий. Боломжит сонголтуудын заримд 12 цагийн эсвэл 24 цагийн, секундтэй эсвэл секундгүй хэлбэр орно. Огнооны асуултын төрөл-ийг ашиглах боломжтой (энэ нь цагийг бас авч чадна) боловч Богино үнэгүй текст асуултын төрөл-ийг доорх баталгаажуулалтын тогтмол илэрхийллүүдийн аль нэгтэй хамт ашиглаж болно.
Дараах гурван баталгаажуулалтын мөр нь 24 цагийн форматыг (дарааллаар нь) секундгүй, секунд нь сонголттой, эцэст нь секунд заавал байх хэлбэрээр шалгана:
/^(?:[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]$/
Дараах гурав нь 12 цагийн форматыг тааруулна, дээрхтэй адил секундтэй, секунд нь сонголттой болон секунд заавал байх хэлбэрээр:
/^(?">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))$/
Дараах гурав нь 12 эсвэл 24 цагийн аль ч форматыг тааруулна, дээрхтэй адил секундтэй, секунд нь сонголттой болон секунд заавал байх хэлбэрээр:
/^(?:(?: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])$/
АНУ-ын мужууд
Нэг мужийг шалгахын тулд дараахийг ашиглана уу (жишээ нь Техас):
- Зөвхөн том үсэг: TX
/^(TX)$/
- Зөвхөн жижиг үсэг: tx
/^(tx)$/
- Том эсвэл жижиг үсэг: TX
/^([T|t][X|x])$/
Хараалын үг шүүх шүүлтүүр
Хариултаас хараалын үгийг шүүхийн тулд:
/^(?i)((?!\bENTERPROFANITYHERE\b).)*$(?-i)/
"ENTERPROFANITYHERE"-ийг өөрийн хориглох үгээр солино уу.
\b нь хараалын үг болгон "ass" эсвэл "hell" гэж оруулсан тохиолдолд "assassination" болон "hello" зэрэг үгсийг нэвтрүүлнэ. Энэ нь хариултаас бусад үг, нэр зэргийг хасахыг оролдох үед ч мөн адил ажиллана.
Хэрэгтэй холбоосууд
Энэ вики хэсгийн эхэнд бид тогтмол илэрхийллийг турших/үүсгэхийн тулд https://regex101.com/ ашиглахыг зөвлөсөн. Хэрэв эхний сонголт танд таалагдахгүй бол илэрхийлэл үүсгэхийн тулд https://www.regextester.com/ хаягийг ашиглаж болно. Тогтмол илэрхийллийг дүрслэн харахын тулд https://extendsclass.com/regex-tester.html хаягийг ашиглаж болно.