ການປະກາດຄວາມປອດໄພ JavaScript

ວິທະຍາສາດແມ່ນສ່ວນປະກອບຂອງວິທະຍາສາດຊອກຫາ.

ວິທະຍາສາດຊອກຫາສາມາດນຳໃຊ້ເພື່ອການຊອກຫາຄວາມທີ່ຖືກປ່ຽນຫຼືການປ່ຽນຄວາມ.

ວິທະຍາສາດແມ່ນຫຍັງ?

ວິທະຍາສາດແມ່ນສ່ວນປະກອບຂອງວິທະຍາສາດຊອກຫາ.ວິທະຍາສາດຊອກຫາ (search pattern)ຄວາມທີ່ຖືກຊອກຫາ.

ບໍ່ສາມາດຊອກຫາຄວາມທີ່ຖືກປ່ຽນທີ່ຢູ່ໃນຄຳວັດຕະວັດຕາມວິທະຍາສາດບໍ່ໄດ້ທີ່ພວກເຈົ້າຈະນຳໃຊ້ວິທະຍາສາດຊອກຫາຄວາມທີ່ຖືກປ່ຽນ.

ວິທະຍາສາດສາມາດເປັນຄຳວັດຕະວັດຕາມວິທະຍາສາດທີ່ລວມທັງຄຳວັດຕະວັດຕາມວິທະຍາສາດລຽບລັງຫຼືວິທະຍາສາດທີ່ຫຼາຍກວ່າ.

ວິທະຍາສາດແມ່ນສາມາດນຳໃຊ້ເພື່ອການປະຕິບັດທຸກຕົວລະຄອນ:ການຊອກຫາຄວາມທີ່ຖືກປ່ຽນ.ພາຍໃນການປ່ຽນຄວາມທີ່ຖືກປ່ຽນ.ການປະຕິບັດ.

ວິທະຍາສາດ

/pattern/modifiers;

ຄວາມຄິດທີ່ພິຈາລະນາ

var patt = /codew3c/i;

ຕົວຢ່າງ:

/codew3c/i ເປັນວິທະຍາສາດ.

codew3c ເປັນວິທະຍາສາດ (pattern) (ທີ່ນຳໃຊ້ໃນການຊອກຫາ).

Modifier ເປັນສັນຍາລະບາຍ (modifiers) (ທີ່ປ່ຽນການຊອກຫາເປັນຄວາມຫຼັກຫຼາຍ).

ການນຳໃຊ້ພາສານວິທະຍາສາດ

ໃນ JavaScript ວິທະຍາສາດແມ່ນຖືກນຳໃຊ້ໃນສອງບັນຫາ:ພາສານວິທະຍາສາດ:search() ພາຍໃນ ນຳໃຊ້ກົນລະບົບ string method replace().

search() ວິທະຍາສາດນຳໃຊ້ວິທະຍາສາດເພື່ອຊອກຫາການຕົກລົງຫຼັງຈາກທີ່ຈັດການຄືນ.

ນຳໃຊ້ກົນລະບົບ string method replace() ວິທະຍາສາດຈະຮັບຄຳວັດຕະວັດຕາມວິທະຍາສາດທີ່ຖືກແຊກແຊງຄືນພາຍໃນຄຳວັດຕະວັດຕາມວິທະຍາສາດ.

ການນຳໃຊ້ພາສານວິທະຍາສາດ search() ເພື່ອຈັດການຄຳວັດຕະວັດຕາມວິທະຍາສາດ

search() ວິທະຍາສາດຍັງຍອມຮັບຄຳວັດຕະວັດຕາມວິທະຍາສາດ ຄຳປະເພດສຳລັບການຊອກຫາ:

ຄວາມຄິດທີ່ພິຈາລະນາ

ການນຳໃຊ້ຄຳວັດຕະວັດຕາມວິທະຍາສາດ ເພື່ອຊອກຫາ "W3school":

var str = "Visit CodeW3C.com!";
var n = str.search("W3School"); 

ທົດລອງຄັນເອງ

ການນຳໃຊ້ວິທະຍາສາດໃນພາສານວິທະຍາສາດ search():

ຄວາມຄິດທີ່ພິຈາລະນາ

ການຊອກຫາ "codew3c" ທີ່ບໍ່ຄຳນຶງຄວາມຫຼັກຫຼາຍຂອງຄຳວັດຕະວັດຕາມວິທະຍາສາດ:

var str = "Visit CodeW3C.com";
var str = "Visit CodeW3C.com"; 

var n = str.search(/codew3c/i);

ຜົນຂອງ n ຈະເປັນ:

ທົດລອງຄັນເອງ

6

ນຳໃຊ້ກົນລະບົບ string method replace() replace()

ນຳໃຊ້ RegExp ທີ່ບໍ່ສະດວກກັບຄວາມຫຼັກກະພິບທີ່ W3school ແທນຄວາມ Microsoft ໃນຄວາມ:
ກົນລະບົບ replace() ທີ່ຍອມຮັບຄວາມທີ່ກໍານົດຄືນຫຼາຍກິດ. 

ທົດລອງຄັນເອງ

var res = str.replace("Microsoft", "W3School");

ຄວາມຄິດທີ່ພິຈາລະນາ

ນຳໃຊ້ RegExp ທີ່ບໍ່ສະດວກກັບຄວາມຫຼັກກະພິບໃນກົນລະບົບ replace()

ນຳໃຊ້ RegExp ທີ່ບໍ່ສະດວກກັບຄວາມຫຼັກກະພິບທີ່ W3school ແທນຄວາມ Microsoft ໃນຄວາມ:
var str = "Visit Microsoft!"; 

var res = str.replace(/microsoft/i, "W3School");

ຜົນຂອງ res ຈະເປັນ:

ທົດລອງຄັນເອງ

Visit CodeW3C.com!

ທ່ານໄດ້ສັງເກດບໍ່?

Parameter RegExp (ບໍ່ແມ່ນ parameter string) ສາມາດນຳໃຊ້ໃນ method ທີ່ກ່າວກ່າວນັ້ນ.

RegExp ສາມາດເຮັດໃຫ້ການຫາຂອງທ່ານມີຄວາມອິດສະຫຼະ (ບ.ເປັນຄວາມຫຼັກກະພິບ).

ສາມາດນຳໃຊ້ເພື່ອຫາຂະແໜງການຫຼາຍກິດທີ່ບໍ່ສະດວກກັບຄວາມຫຼັກກະພິບຫຼາຍຂຶ້ນ:Modifier RegExp

ສາມາດນຳໃຊ້ເພື່ອຫາຂະແໜງການຫຼາຍກິດທີ່ບໍ່ສະດວກກັບຄວາມຫຼັກກະພິບຫຼາຍຂຶ້ນ: ອະທິບາຍ ພະຍາຍາມດັ່ງກ່າວ
Modifier ການຈັດຕັ້ງການຫາຂະແໜງການຫຼາຍກິດທີ່ບໍ່ສະດວກກັບຄວາມຫຼັກກະພິບ. ພະຍາຍາມດັ່ງກ່າວ
g ການຈັດຕັ້ງການຫາຂະແໜງການຫຼາຍກິດ (ຫາທຸກການຫາທີ່ມີຫຼາຍກິດ ບໍ່ແມ່ນຫຼາຍກິດທຳອິດ). ພະຍາຍາມດັ່ງກ່າວ
m ການຈັດຕັ້ງການຫາຂະແໜງການຫຼາຍກິດ. ພະຍາຍາມດັ່ງກ່າວ

ກົນລະບົບ RegExp

ກະບຽນນຳໃຊ້ການສະແດງທີ່ຫາຄວາມທີ່ຢູ່ໃນຊິວິດຕາມຂອບເຂດນັ້ນ:

ການສະແດງ ອະທິບາຍ ພະຍາຍາມດັ່ງກ່າວ
[abc] ຊອກຫາຄຳຕາມທີ່ຢູ່ໃນກະບຽນ. ພະຍາຍາມດັ່ງກ່າວ
[0-9] ຊອກຫາຈຳນວນຈາກ 0 ຫຼື 9. ພະຍາຍາມດັ່ງກ່າວ
(x|y) ຊອກຫາທາງເລືອກທີ່ຖືກແບ່ງດ້ວຍ |. ພະຍາຍາມດັ່ງກ່າວ

Metacharacterແມ່ນຄຳສະພາບທີ່ມີຄວາມໝາຍສະເພາະ:

ຄຳສະພາບ ອະທິບາຍ ພະຍາຍາມດັ່ງກ່າວ
\d ຊອກຫາຈຳນວນ. ພະຍາຍາມດັ່ງກ່າວ
\s ຊອກຫາຄວາມຈະລະດັບ. ພະຍາຍາມດັ່ງກ່າວ
\b ຊອກຫາຂ້າງຖະໜົນຂອງຄຳຕາມ. ພະຍາຍາມດັ່ງກ່າວ
\uxxxx ຊອກຫາພາສາ Unicode ທີ່ກໍານົດໂດຍ xxxx. ພະຍາຍາມດັ່ງກ່າວ

Quantifiers ການກໍານົດປະສົມ:

ປະສົມ ອະທິບາຍ ພະຍາຍາມດັ່ງກ່າວ
n+ ການຈັດຕັ້ງຄວາມທີ່ມີ n 1 ຫຼືຫຼາຍກວ່າ. ພະຍາຍາມດັ່ງກ່າວ
n* ການຈັດຕັ້ງຄວາມທີ່ມີ n 0 ຫຼືຫຼາຍກວ່າ. ພະຍາຍາມດັ່ງກ່າວ
n? ການຈັດຕັ້ງຄວາມທີ່ມີ n 0 ຫຼື 1. ພະຍາຍາມດັ່ງກ່າວ

ນຳໃຊ້ RegExp ແມ່ນ

ໃນ JavaScript RegExp ແມ່ນອົງກອນ RegExp ທີ່ມີຜົນປະສົງ ແລະກົນລະບົບທີ່ກໍານົດຄືນ。

ນຳໃຊ້ test()

test() ແມ່ນກົນລະບົບຂອງ Regular Expression。

ມັນຈະຊອກຫາຄວາມຕາມຮູບແບບ ແລະກັບຄືນທີ່ມີຜົນກັບ true ຫຼື false。

ຄວາມຄິດທີ່ພິຈາລະນາຢູ່ໃນສາຍ, ການຄົ້ນຫາຄວາມ "e":

ຄວາມຄິດທີ່ພິຈາລະນາ

var patt = /e/;
patt.test("The best things in life are free!"); 

ຍ້ອນວ່າມີ "e" ໃນສາຍ, ຄຳອອກຂອງລະບັນຍັດດັ່ງກ່າວຈະເປັນ:

true

ທົດລອງຄັນເອງ

ທ່ານບໍ່ຈຳເປັນທີ່ຈະເອົາ RegExp ທີ່ກໍານົດໄວ້ໃນສານ. ສອງປະແນນທີ່ກ່າວກ່ອນຈະສາມາດປັບປ່ຽນເປັນປະແນນດຽວ:

/e/.test("The best things in life are free!");

ການດຳເນີນ exec()

exec() ວິທີການແມ່ນວິທີການ RegExp.

ມັນຈະດຳເນີນການຄົ້ນຫາຮູບແບບທີ່ກໍານົດໄວ້ໃນສາຍ, ແລະກັບຄືນຄວາມຄິດທີ່ພົບ.

ຖ້າບໍ່ພົບກັບການຕົກລົງ, ຈະກັບຄືນເປັນ null.

ຄວາມຄິດທີ່ພິຈາລະນາຢູ່ໃນສາຍ, ການຄົ້ນຫາຄວາມ "e":

ຄວາມຄິດທີ່ພິຈາລະນາ

/e/.exec("The best things in life are free!");

ຍ້ອນວ່າມີ "e" ໃນສາຍ, ຄຳອອກຂອງລະບັນຍັດດັ່ງກ່າວຈະເປັນ:

e

ທົດລອງຄັນເອງ

ປື້ມການປົກຄອງ RegExp ທີ່ເຕັມເພາະ

ສຳລັບປື້ມການປົກຄອງທີ່ເຕັມເພາະ, ການຢ້ຽມຢາມຂອງພວກເຮົາ JavaScript RegExp ປື້ມການປົກຄອງ.

ປື້ມການປົກຄອງກວມມີການອະທິບາຍແລະຄວາມຄິດທີ່ພິຈາລະນາຂອງ RegExp ແລະຄວາມຄິດທີ່ພິຈາລະນາຂອງ RegExp.