ຄອມພິວເຕີ, ດໍາເນີນໂຄງການ
PHP (regex) - ມັນເປັນສິ່ງທີ່? ຕົວຢ່າງແລະກວດສອບການສະແດງອອກເປັນປົກກະຕິ
ໃນເວລາທີ່ເຮັດວຽກຮ່ວມກັບຂໍ້ຄວາມໃນພາສາການຂຽນໂປຣແກຣມໃດທີ່ທັນສະໄຫມ, ພັດທະນາຢ່າງຕໍ່ເນື່ອງຕອບສະຫນອງກັບຈຸດປະສົງຂອງການກວດສອບການປ້ອນຂໍ້ມູນສໍາລັບການປະຕິບັດຕາມທີ່ມີຮູບແບບທີ່ຕ້ອງການໄດ້, ການຊອກຫາແລະປ່ຽນແທນຊິ້ນທົດສອບແລະປະເພດອື່ນໆຂອງການດໍາເນີນງານປະມວນຜົນຂອງຂໍ້ມູນຂ່າວສານມີລັກສະນະ. ພັດທະນາຂັ້ນຕອນວິທີການກວດສອບຂອງທ່ານເອງເຮັດໃຫ້ສູນເສຍເວລາ, ເຂົ້າກັນໄດ້ລະຫັດແລະຄວາມສັບສົນໃນການພັດທະນາແລະທັນສະໄຫມຂອງຕົນ.
ການພັດທະນາຢ່າງວ່ອງໄວຂອງອິນເຕີເນັດແລະ WEB-ການອອກແບບພາສາທີ່ຕ້ອງການສ້າງຄວາມຫລາກຫລາຍແລະຫນາແຫນ້ນຂອງການປະມວນຜົນຂໍ້ຄວາມທີ່ມີປະລິມານຕ່ໍາສຸດທີ່ກໍານົດໄວ້ສໍາລັບການລະຫັດນີ້. ມັນແມ່ນບໍ່ມີຂໍ້ຍົກເວັ້ນແລະເປັນທີ່ນິຍົມໃນບັນດາຜູ້ເລີ່ມແລະພັດທະນາເປັນມືອາຊີບຂອງພາສາ PHP. ພາສາການສະແດງອອກເປັນປົກກະຕິເປັນແມ່ແບບຂໍ້ຄວາມທີ່ຈະງ່າຍໃນຫນ້າວຽກຂອງການຈັດການຂໍ້ຄວາມແລະຫຼຸດຜ່ອນລະຫັດສໍາລັບການສິບແລະຫຼາຍຮ້ອຍຄົນຂອງສາຍ. ບັນຫາເລົ່ານີ້ບໍ່ສາມາດໄດ້ຮັບການແກ້ໄຂຢູ່ທັງຫມົດໂດຍບໍ່ມີການມັນ.
ສະແດງອອກເຊິ່ງປົກກະຕິໃນ PHP
ພາສາ PHP ມີສາມກົນໄກສໍາລັບການເຮັດວຽກການສະແດງອອກເປັນປົກກະຕິ - « ereg », « mb_ereg »ແລະ«ອາຍຸຄັນ». ການທົ່ວໄປສ່ວນໃຫຍ່ແມ່ນການໂຕ້ຕອບ«ອາຍຸຄັນ», ທີ່ປະຕິບັດຫນ້າສະຫນອງການເຂົ້າເຖິງຫໍສະຫມຸດຂອງສະຫນັບສະຫນູນການສະແດງອອກເປັນປົກກະຕິ PCRE, ພັດທະນາເບື້ອງຕົ້ນສໍາລັບການພາສາການ Perl, ເຊິ່ງລວມຢູ່ໃນຊຸດ PHP ໄດ້. Preg ກໍາລັງຊອກຫາການເຮັດວຽກຢູ່ໃນໂຍບາຍຄວາມລັບ string text ໃຫ້, ອີງຕາມຮູບແບບສະເພາະໃດຫນຶ່ງໃນພາສາຂອງສໍານວນປົກກະຕິໄດ້.
ພື້ນຖານໄວຢາກອນ
ໃນຖານະເປັນສ່ວນຫນຶ່ງຂອງບົດຄວາມສັ້ນມັນເປັນໄປບໍ່ໄດ້ທີ່ຈະອະທິບາຍໃນລາຍລະອຽດໄດ້ທັງຫມົດ syntax ການສະແດງອອກເປັນປົກກະຕິ, ສໍາລັບການນີ້ມີວັນນະຄະດີພິເສດ. ພວກເຮົາສະເຫນີພຽງແຕ່ອົງປະກອບຕົ້ນຕໍຂອງການສະແດງໃຫ້ເຫັນກາລະໂອກາດສໍາລັບການພັດທະນາແລະເຂົ້າໃຈຕົວຢ່າງລະຫັດໄດ້.
ໃນ PHP ພົດທົ່ວໄປຖືກກໍານົດໄວ້ຢ່າງເປັນທາງການມີຄວາມຫຍຸ້ງຍາກຫຼາຍ, ແລະເພາະສະນັ້ນຈຶ່ງຊັບຊ້ອນຄໍາອະທິບາຍ. A ການສະແດງອອກເປັນປົກກະຕິເປັນສະຕິງຂໍ້ຄວາມ. ມັນປະກອບດ້ວຍແມ່ແບບແຍກອຸທິດຕົນແລະຕົວລະບຸວິທີການຈັດການກັບມັນ. ລວມເປັນໄປໄດ້ໃນທາງເລືອກຕ່າງໆແລະການຄ້າງຫ້ອງທີ່ຂອງຮູບແບບ.
ສໍາລັບຕົວຢ່າງ, ໃນການສະແດງອອກ / \ d {3} - \ d {2} - \ d {2} / m divider ເປັນ "/", ຕິດຕາມມາດ້ວຍແມ່ແບບ, ແລະສັນຍາລັກ« m »ແມ່ນຕົວໄດ້.
ທັງຫມົດພະລັງງານຂອງການສະແດງອອກເປັນປົກກະຕິຖືກເຂົ້າລະຫັດການນໍາໃຊ້ຕົວອັກສອນ, meta. The metacharacter ພາສາຕົ້ນຕໍແມ່ນເຄື່ອງຫມາຍທັບຂວາ - "\". ມີການປ່ຽນແປງປະເພດຂອງດັ່ງຕໍ່ໄປນີ້ລັກສະນະຂອງກົງກັນຂ້າມໄດ້ (ie. E. ປ່ຽນໃຈເຫລື້ອມໃສເຂົ້າໄປໃນຕົວແທນລັກສະນະທໍາມະດາແລະໃນທາງກັບກັນ). ອີກປະການຫນຶ່ງທີ່ສໍາຄັນ metacharacter ເປັນເສັ້ນຊື່« | », ລະບຸແມ່ແບບທາງເລືອກ. ຕົວຢ່າງເພີ່ມເຕີມຕົວອັກສອນປະ meta:
| ^ | ເລີ່ມວັດຖຸຫຼືສະຕິງ |
| ( | ເລີ່ມ subpattern |
| ) | subpattern End |
| { | ປະລິມານການເລີ່ມຕົ້ນ |
| } | ດ້ານປະລິມານສຸດທ້າຍ |
| \ d | ຫລັກທະສະນິຍົມຕັ້ງແຕ່ 0 ເຖິງ 9 |
| \ D | ລັກສະນະທີ່ບໍ່ແມ່ນຈໍານວນ |
| \ s | ສັນຍາລັກເປົ່າ, ພື້ນທີ່, tab, |
| \ w | ຈະນານຸກົມສັນຍາລັກ |
PHP, ປະມວນຜົນການສະແດງອອກເປັນປົກກະຕິ, ຊ່ອງພິຈາລະນາເປັນມີລັກສະນະທີ່ຖືກຕ້ອງແຍກຕ່າງຫາກ, ສະນັ້ນການສະແດງອອກຂອງ XYZ ແລະ ABC ທີ່ມີທີ່ແຕກຕ່າງກັນ.
subpatterns
ໃນ PHP subpatterns ປົກກະຕິໂດຍວົງເລັບ, ແລະເຂົາເຈົ້າໄດ້ຖືກເອີ້ນວ່າບາງຄັ້ງ "Subexpression". ປະຕິບັດຫນ້າທີ່ດັ່ງຕໍ່ໄປນີ້:
ທາງເລືອກການຈັດສັນ. ສໍາລັບຕົວຢ່າງ, ໃນຮູບແບບຄວາມຮ້ອນ (ບາງສິ່ງບາງຢ່າງ | ນົກ |) ເກີດຂຶ້ນພ້ອມກັບຄໍາວ່າ "ຄວາມຮ້ອນ", "Firebird" ແລະ "ຮ້ອນ". ແລະໂດຍບໍ່ມີການວົງເລັບມັນພຽງແຕ່ຈະເປັນສະຕິງຫວ່າງ, "ນົກ" ແລະ "ຮ້ອນ".
"ປະທັບໃຈ" subpattern. ນີ້ຫມາຍຄວາມວ່າຖ້າຫາກວ່າຮູບແບບການຈັບຄູ່ substring, ຫຼັງຈາກນັ້ນກັບຄືນມາແຂ່ງຂັນທັງຫມົດ. ເພື່ອໃຫ້ເຂົ້າໃຈ, ພວກເຮົາຂໍຍົກຕົວຢ່າງ. ເນື່ອງຈາກການສະແດງອອກເປັນປົກກະຕິດັ່ງຕໍ່ໄປນີ້: ຊະນະເລີດໄດ້ຮັບ ((gold | ທອງ) (ຫຼຽນ | ຈອກ)) - ແລະຊ່ອຍແນ່ສໍາລັບໄມ້ຂີດໄຟ "ໄດ້ຜູ້ທີ່ໄດ້ຮັບຫຼຽນຄໍາ." ນອກເຫນືອໄປຈາກປະໂຫຍກທໍາອິດ, ຜົນໄດ້ຮັບຄົ້ນຫາຈະໄດ້ຮັບການອອກ: "ຫຼຽນຄໍາ", "ຫຼຽນ", "ຄ".
ຜູ້ປະກອບການຄ້າງຫ້ອງທີ່ (kvadrifikatory)
ໃນສັງລວມກ່ຽວໄດ້ສະແດງອອກເປັນປົກກະຕິມັກຈະເປັນຄວາມຈໍາເປັນເພື່ອວິເຄາະການຄ້າງຫ້ອງທີ່ຂອງຕົວເລກແລະສັນຍາລັກ. ນີ້ບໍ່ແມ່ນບັນຫາ, ຖ້າຫາກວ່າບໍ່ຫຼາຍຂອງການຄ້າງຫ້ອງທີ່ເປັນ. ແຕ່ສິ່ງທີ່ຕ້ອງເຮັດໃນເວລາທີ່ພວກເຮົາບໍ່ຮູ້ວ່າຈໍານວນທີ່ແນ່ນອນຂອງເຂົາເຈົ້າ? ໃນກໍລະນີນີ້ມັນເປັນສິ່ງຈໍາເປັນທີ່ຈະນໍາໃຊ້ metacharacters ພິເສດ.
ສໍາລັບຄໍາອະທິບາຍຂອງການຄ້າງຫ້ອງທີ່ໃຊ້ kvadrifikatory ເປັນ - metacharacters ລະບຸຈໍານວນຂອງ. Kvadrifikatory ແມ່ນຂອງທັງສອງປະເພດ:
- ທົ່ວໄປໃນວົງເລັບ;
- ຫຼຸດຜ່ອນລົງ.
ດ້ານປະລິມານໂດຍລວມສໍາພັດໂດຍການຈໍານວນຕ່ໍາສຸດແລະສູງສຸດຂອງອະນຸຍາດໃຫ້ອົງປະກອບການຄ້າງຫ້ອງທີ່ຢູ່ໃນຮູບແບບຂອງສອງຈໍານວນໃນສາຍຣັດໄດ້, ເຊັ່ນ: x {2,5} ໄດ້. ຖ້າຫາກວ່າຈໍານວນສູງສຸດຂອງການຄ້າງຫ້ອງທີ່ບໍ່ມີໃຜຮູ້, ການໂຕ້ຖຽງທີສອງບໍ່ໄດ້ລະບຸ x {2}.
ດ້ານປະລິມານສະບັບຫຍໍ້ແມ່ນສັນຍາລັກສໍາລັບການທີ່ພົບເຫັນຫຼາຍທີ່ສຸດຂອງການຄ້າງຫ້ອງທີ່ຢູ່ໃນຄໍາສັ່ງເພື່ອຫຼີກເວັ້ນການ syntax ຫລາຍໄປທີ່ບໍ່ຈໍາເປັນ. ປົກກະຕິແລ້ວມີສາມຕັດ:
1. * - ສູນຫຼືຫຼາຍກວ່າການຄ້າງຫ້ອງທີ່, ຊຶ່ງທຽບເທົ່າກັບ {0,}.
2 + - ຫນຶ່ງຫຼືຫຼາຍກວ່າການຄ້າງຫ້ອງທີ່, ie, {1} ...
3. ? - ສູນຫຼືພຽງແຕ່ຫນຶ່ງຊ້ໍາ -. {0,1}
ຕົວຢ່າງ regex
ສໍາລັບຜູ້ທີ່ຈະຮຽນຮູ້ສໍານວນປົກກະຕິ, ຕົວຢ່າງ - ການປື້ມແບບຮຽນທີ່ດີທີ່ສຸດ. ພວກເຮົາໃຫ້ຈໍານວນຫນ້ອຍທີ່ສະແດງໃຫ້ເຫັນໂອກາດຂອງພວກເຂົາທີ່ມີຕໍາ່ສຸດທີ່ຂອງຄວາມພະຍາຍາມເປັນ. ລະຫັດທັງຫມົດແມ່ນໄດ້ຢ່າງເຕັມສ່ວນທີ່ເຫມາະສົມກັບສະບັບຂອງ 4.x PHP ແລະຂ້າງເທິງ. ເພື່ອໃຫ້ເຂົ້າໃຈຢ່າງເຕັມສ່ວນໄວຢາກອນແລະການນໍາໃຊ້ຄຸນນະສົມບັດພາສາທັງຫມົດທີ່ພວກເຮົາແນະນໍາໃຫ້ book by J .. Friedl, "ການສະແດງອອກເປັນປົກກະຕິ", ເຊິ່ງພິຈາລະນາຢ່າງເຕັມສ່ວນ syntax, ແລະຍັງມີຕົວຢ່າງຂອງການສະແດງອອກເປັນປົກກະຕິບໍ່ພຽງແຕ່ PHP, ແຕ່ຍັງສໍາລັບການ Python, Perl, MySQL, Java, Ruby, ແລະ C #.
Validation E mail ທີ່ຢູ່
Task. ມີຫນ້າອິນເຕີເນັດທີ່ຈໍານວນຜູ້ເຂົ້າໄດ້ຖືກຮຽກຮ້ອງໃຫ້ອີເມລ໌ທີ່ຢູ່ເປັນ. ການສະແດງອອກເປັນປົກກະຕິຕ້ອງກວດສອບຄວາມຖືກຕ້ອງຂອງທີ່ຢູ່ໃນກ່ອນທີ່ຈະສົ່ງຂໍ້ຄວາມ. ກວດສອບບໍ່ໄດ້ຮັບປະກັນວ່າ mailbox ທີ່ກໍານົດໄວ້ໃນຕົວຈິງແມ່ນຢູ່ແລະໄດ້ຮັບຂໍ້ຄວາມ. ແຕ່ເປັນວັດສະພືດອອກຢູ່ຜິດພາດແນ່ນອນມັນສາມາດເຮັດໄດ້.
ການຕັດສິນໃຈ. ເຊັ່ນດຽວກັນກັບພາສາການຂຽນໂປຣແກຣມໃດກໍ່ຕາມ, ໃນ PHP ຢືນຢັນອີເມວ, ທີ່ຢູ່ regex ສາມາດໄດ້ຮັບການປະຕິບັດໃນວິທີການທີ່ແຕກຕ່າງກັນ, ແລະຕົວຢ່າງໃນບົດຄວາມນີ້ແມ່ນບໍ່ແມ່ນທາງເລືອກສຸດທ້າຍແລະເທົ່ານັ້ນ. ເພາະສະນັ້ນ, ໃນແຕ່ລະກໍລະນີ, ພວກເຮົາຈະສະຫນອງບັນຊີລາຍຊື່ຂອງຄວາມຕ້ອງການທີ່ຈໍາເປັນຕ້ອງໄດ້ຮັບການປະຕິບັດເຂົ້າໃນບັນຊີໃນເວລາທີ່ດໍາເນີນໂຄງການແລະການປະຕິບັດສະເພາະໃດຫນຶ່ງຂຶ້ນກັບທັງຫມົດຜູ້ພັດທະນາໄດ້.
ດັ່ງນັ້ນ, ການສະແດງອອກທີ່ການທົດສອບອີເມວທີ່ຖືກຕ້ອງ, ຄວນກວດສອບເງື່ອນໄຂດັ່ງຕໍ່ໄປນີ້:
- ການປາກົດຕົວໃນເລີ່ມໄດ້ເສັ້ນ @ ສັນຍາລັກ, ແລະບໍ່ມີຊ່ອງຫວ່າງ.
- ສ່ວນຂອບເຂດຂອງການຢູ່ຂອງ @ ສັນຍາລັກດັ່ງກ່າວ, ປະກອບດ້ວຍຕົວອັກສອນທີ່ຖືກຕ້ອງພຽງແຕ່ສໍາລັບຊື່ໂດເມນ. ຂະນະດຽວກັນໃຊ້ໄດ້ກັບຊື່ຜູ້ໃຊ້ຂອງ.
- ໃນເວລາທີ່ກວດສອບຊື່ຜູ້ໃຊ້ແມ່ນມີຄວາມຈໍາເປັນເພື່ອກໍານົດມີລັກສະນະພິເສດດັ່ງກ່າວເປັນ Apostrophe ຫຼືສາຍຕັ້ງ. ສັນຍາລັກດັ່ງກ່າວແມ່ນມີທ່າແຮງອັນຕະລາຍແລະສາມາດໄດ້ຮັບການບັນຈຸຢູ່ໃນປະເພດດັ່ງກ່າວຂອງການໂຈມຕີທີ່ SQL, ສັກຢາ. ຫຼີກເວັ້ນການຢູ່.
- ຊື່ຜູ້ໃຊ້ອະນຸຍາດໃຫ້ພຽງແຕ່ຫນຶ່ງ, ທີ່ອາດຈະບໍ່ມີລັກສະນະທໍາອິດຫຼືສຸດທ້າຍໃນການຊ່ອຍແນ່.
- ຊື່ໂດເມນທີ່ຕ້ອງປະກອບດ້ວຍຢ່າງຫນ້ອຍສອງແລະບໍ່ຫຼາຍກ່ວາຫົກຕົວອັກສອນ.
ຍົກຕົວຢ່າງ, ການຄໍານຶງເຖິງການທັງຫມົດຂອງສະພາບການເຫຼົ່ານີ້ສາມາດໄດ້ຮັບການເຫັນໃນຕົວເລກດັ່ງຕໍ່ໄປນີ້.
ການກວດສອບຂອງເວັບ
Task. ໃຫ້ກວດເບິ່ງວ່າ string text ທີ່ກໍານົດໄວ້ແມ່ນຖືກຕ້ອງ URL ທີ່ຢູ່. ເມື່ອອີກເທື່ອຫນຶ່ງ, ພວກເຮົາສັງເກດວ່າການສະແດງອອກເປັນປົກກະຕິ URL ກວດເບິ່ງສາມາດໄດ້ຮັບການປະຕິບັດໃນວິທີການຕ່າງໆ.
ການຕັດສິນໃຈ. ສະບັບສຸດທ້າຍຂອງພວກເຮົາແມ່ນເປັນດັ່ງຕໍ່ໄປນີ້:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /
ໃນປັດຈຸບັນວິເຄາະອົງປະກອບຂອງຕົນໃນລາຍລະອຽດເພີ່ມເຕີມການນໍາໃຊ້ຮູບແຕ້ມຂອງ.
| ມານ 1 ປີກ່ອນ | ກ່ອນທີ່ຈະ URL ທີ່ບໍ່ຄວນຈະມີຕົວອັກສອນໃດ |
| ການຮຽກຮ້ອງ 2 | ກວດສອບການມີຂອງຄໍານໍາຫນ້າບັງຄັບ« http » |
| ລາຍການ 3 | ມີຈະຕ້ອງເປັນສັນຍາລັກທີ່ບໍ່ມີ |
| ການຮຽກຮ້ອງ 4 | ຖ້າຫາກວ່າມີ« s », ຈຸດ URL ທີ່ຈະເປັນການເຊື່ອມຕໍ່ຫມັ້ນຄົງ« https » |
| ການຮຽກຮ້ອງ 5 | ສ່ວນທີ່ກໍານົດໄວ້ຂອງ "//" |
| ການຮຽກຮ້ອງ 6 | ມີລັກສະນະ |
| p. 7-9 | ກໍາລັງຢືນຢັນໄດ້ ໂດເມນໃນລະດັບທໍາອິດ ແລະມີຈຸດໄດ້ |
| p.10-13 | ກໍາລັງຢືນຢັນໂດເມນຂອງລາຍລັກອັກສອນໃນລະດັບທີສອງແລະຈຸດໄດ້ |
| p.14-17 | URL ໂຄງສ້າງເອກະສານ - ທີ່ກໍານົດໄວ້ຂອງຕົວເລກ, ຕົວອັກສອນ, ຂີດ, dashes, ຈຸດ, ແລະ slash ຢູ່ໃນຕອນທ້າຍໄດ້ |
ກວດສອບການຈໍານວນບັດເຄຣດິດທີ່
Task. ທ່ານຈໍາເປັນຕ້ອງໄດ້ປະຕິບັດການກວດສອບຂອງຈໍານວນບັດເຄຣດິດໄປຂອງລະບົບການຈ່າຍເງິນທົ່ວໄປຫຼາຍທີ່ສຸດ. A ແຕກຕ່າງພຽງແຕ່ສໍາລັບບັດ ວີຊາແລະ MasterCard.
ການຕັດສິນໃຈ. ໃນເວລາທີ່ການສ້າງການສະແດງອອກທີ່ທ່ານຈໍາເປັນຕ້ອງໄດ້ໃຊ້ເວລາເຂົ້າໄປໃນບັນຊີມີຄວາມເປັນໄປໄດ້ຂອງຊ່ອງຫວ່າງຢູ່ໃນຫ້ອງການປ້ອນຂໍ້ມູນ. ຕົວເລກໃນແຜນທີ່ໄດ້ຖືກແບ່ງອອກເປັນກຸ່ມສໍາລັບການອ່ານງ່າຍຂຶ້ນແລະທີ່ພັກຣັດໄດ້. ເພາະສະນັ້ນ, ມັນເປັນທໍາມະຊາດທີ່ເປັນຄົນສາມາດພະຍາຍາມທີ່ຈະເຂົ້າຈໍານວນໃນວິທີການນີ້ (ie. E. ການນໍາໃຊ້ພື້ນທີ່).
ຂຽນສະແດງອອກຢູ່ທົ່ວໄປທີ່ໃຊ້ເວລາເຂົ້າໄປໃນບັນຊີສະຖານທີ່ທີ່ເປັນໄປໄດ້ຫລືເຄື່ອງຫມາຍ, ແມ່ນສັບສົນຫຼາຍກ່ວາພຽງແຕ່ຖິ້ມຕົວອັກສອນທັງຫມົດຍົກເວັ້ນຕົວເລກ. ດັ່ງນັ້ນ, ພວກເຮົາແນະນໍາໃຫ້ການນໍາໃຊ້ການສະແດງອອກຕົວແທນ / D ຊຶ່ງເອົາຕົວອັກສອນທັງຫມົດຍົກເວັ້ນຕົວເລກ.
ໃນປັດຈຸບັນທ່ານສາມາດໄປໂດຍກົງກັບຈໍານວນການກວດສອບໄດ້. ບໍລິສັດທັງຫມົດ, ອອກບັດເຄດິດໃຊ້ຮູບແບບຈໍານວນເປັນເອກະລັກ. ໃນຕົວຢ່າງທີ່ມັນຖືກນໍາໃຊ້, ແລະລູກຄ້າບໍ່ໄດ້ຈໍາເປັນຕ້ອງໄດ້ໃສ່ຊື່ຂອງບໍລິສັດດັ່ງກ່າວ - ມັນຖືກກໍານົດໂດຍຈໍານວນຂອງ. ບັດວີຊາສະເຫມີເລີ່ມຕົ້ນດ້ວຍການຈໍານວນ 4 ແລະມີຄວາມຍາວຂອງ 13 ຫຼື 16 ຕົວເລກໄດ້. MasterCard ຈະເລີ່ມຕົ້ນໃນລະດັບຂອງ 51-55 ມີຈໍານວນຍາວ 16 ດັ່ງນັ້ນ, ພວກເຮົາໄດ້ຮັບການສະແດງອອກດັ່ງຕໍ່ໄປນີ້:
ກ່ອນທີ່ຈະປະມວນຜົນຄໍາສັ່ງທີ່ສາມາດໄດ້ຮັບການທົດສອບເພີ່ມເຕີມໄດ້ຕົວເລກສຸດທ້າຍຂອງຈໍານວນ, ທີ່ໄດ້ຖືກຄິດໄລ່ກ່ຽວກັບຂັ້ນຕອນວິທີ Luhn.
ຫມາຍເລກໂທລະສັບກໍາລັງຢືນຢັນ
Task. ກໍາລັງກວດສອບຄວາມຖືກຕ້ອງຂອງຈໍານວນໂທລະສັບເຂົ້າໄປໄດ້.
ການຕັດສິນໃຈ. ຈໍານວນຕົວເລກເປັນຈໍານວນໂທລະສັບຄົງທີ່ແລະໂທລະສັບມືຖືໄດ້ແຕກຕ່າງກັນໄປຫຼາຍສົມຄວນໂດຍອີງຕາມປະເທດ, ສະນັ້ນວິທະຍາໄລໃຫ້ກວດເບິ່ງການນໍາໃຊ້ການສະແດງອອກເປັນປົກກະຕິ, ຫມາຍເລກໂທລະສັບເປັນໄປບໍ່ໄດ້ຢ່າງຖືກຕ້ອງ. ແຕ່ວ່າຕົວເລກລະຫວ່າງປະເທດມີຮູບແບບທີ່ເຂັ້ມງວດແລະສົມບູນແບບສໍາລັບການກວດສອບຮູບແບບການ. ແມ້ກະທັ້ງຫຼາຍດັ່ງນັ້ນຫຼາຍກວ່າແລະຫຼາຍຜູ້ປະກອບການໂທລະສັບລະດັບຊາດໄດ້ຖືກພະຍາຍາມເພື່ອຕອບສະຫນອງມາດຕະຖານດຽວກັນ. ໂຄງປະກອບການລອຍນ້ໍາເປັນດັ່ງຕໍ່ໄປນີ້:
+ CCC.NNNNNNNNNNxEEEE, ບ່ອນທີ່:
- C - ເປັນລະຫັດປະເທດທີ່ປະກອບດ້ວຍ 1-3 ຕົວເລກ.
- N -. ຈໍານວນສູງເຖິງ 14 ຕົວເລກ
-. E - ນາມສະກຸນທາງເລືອກ
Plus ເປັນອົງປະກອບທີ່ຂາດບໍ່ໄດ້, ແລະອາການ X ແມ່ນປະຈຸບັນພຽງແຕ່ໃນເວລາທີ່ຈໍາເປັນນາມສະກຸນ.
ດັ່ງນັ້ນພວກເຮົາມີການສະແດງອອກດັ່ງຕໍ່ໄປນີ້:
\ + [0-9] {1,3 } \ [0-9] {4,14}. (:. x +)? $
ຈໍານວນໃນລະດັບທີ່
Task. ມັນເປັນສິ່ງຈໍາເປັນເພື່ອຮັບປະກັນ integer coincidence ຂອງລະດັບທີ່ແນ່ນອນ. ໃນນອກຈາກນັ້ນ, ມັນເປັນສິ່ງຈໍາເປັນເພື່ອຊອກຫາການສະແດງອອກເປັນປົກກະຕິພຽງແຕ່ຈໍານວນຈາກລະດັບດັ່ງກ່າວ.
ການຕັດສິນໃຈ. ຕໍ່ໄປນີ້ແມ່ນການສະແດງອອກບໍ່ຫຼາຍປານໃດກັບບາງສ່ວນຂອງກໍລະນີທົ່ວໄປສ່ວນໃຫຍ່ແມ່ນ:
| ກໍານົດຊົ່ວໂມງທີ 1 ເຖິງ 24 | ^ (1 [0-2] | [1-9]) $ |
| ວັນໃນເດືອນ 1-31 | ^ (3 [01] | [12] [0-9] | [1-9]) $ |
| ວິນາທີຫລືນາທີ 0-59 | [1-5] [0-9] $ |
| ຈໍານວນຈາກການທີ 1 ເຖິງ 100 A | * (100 | [1-9] [0-9]) $ |
| ວັນຂອງປີ 1-366 | ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} | [1-9] [0-9]) $ |
Search IP-ຢູ່
Task. ມັນເປັນສິ່ງຈໍາເປັນເພື່ອກໍານົດວ່າເປັນ string ໃຫ້ເປັນທີ່ຖືກຕ້ອງທີ່ຢູ່ IP ໃນຮູບແບບ IPv4 ໃນລະດັບຈາກ 000.000.000.000-255.255.255.255 ໄດ້.
ການຕັດສິນໃຈ. ເຊັ່ນດຽວກັບບັນຫາໃດຫນຶ່ງໃນພາສາຂອງ PHP ຄໍາວ່າປົກກະຕິມີ varintov ຫຼາຍ. ສໍາລັບຕົວຢ່າງ, ນີ້:
ການກວດສອບອອນໄລນ໌ການສະແດງອອກ
ໃຫ້ກວດເບິ່ງ regex ຢ່າງຖືກຕ້ອງສໍາລັບຜູ້ເລີ່ມສາມາດມີຄວາມຫຍຸ້ງຍາກເນື່ອງຈາກວ່າຄວາມສັບສົນຂອງໄວຢາກອນ, ເຊິ່ງແຕກຕ່າງຈາກ "ປົກກະຕິ" ດໍາເນີນໂຄງພາສາ. ເພື່ອແກ້ໄຂບັນຫາດັ່ງກ່າວນີ້, ມີຈໍານວນຫຼາຍການສະແດງອອກການທົດສອບອອນໄລນ໌ທີ່ເຮັດໃຫ້ມັນງ່າຍທີ່ຈະກວດສອບຄວາມຖືກຕ້ອງຂອງແມ່ແບບທີ່ທ່ານສ້າງຕັ້ງຂື້ນໃນຄວາມຈິງໄດ້. ໂຄງການເຂົ້າສູ່ການສະແດງອອກແລະການຢັ້ງຢືນຂໍ້ມູນແລະທັນທີເບິ່ງຜົນມາຈາກການປະມວນຜົນໄດ້. ປົກກະຕິແລ້ວມີນໍາສະເຫນີເປັນພາກສ່ວນກະສານອ້າງອີງ, ເຊິ່ງລາຍລະອຽດການສະແດງອອກເປັນປົກກະຕິ, ຕົວຢ່າງແລະຄວາມແຕກຕ່າງການປະຕິບັດສໍາລັບພາສາເພີ່ມເຕີມທີ່ສຸດ.
ແຕ່ການບໍລິການອອນໄລນ໌ຄວາມໄວ້ວາງໃຈຢ່າງເຕັມສ່ວນຜົນບໍ່ແນະນໍາໃຫ້ສໍາລັບການພັດທະນາທັງຫມົດທີ່ໃຊ້ PHP. A ການສະແດງອອກເປັນປົກກະຕິແມ່ນລາຍລັກອັກສອນແລະການຢັ້ງຢືນດ້ວຍຕົນເອງ, ເຮັດໃຫ້ຄຸນສົມບັດແລະຮັບປະກັນເມື່ອບໍ່ມີຄວາມຜິດພາດໄດ້.
Similar articles
Trending Now