JavaScript Regular Expression-ийг хөтөч дээрээ турших нь
Regular expression (regex) буюу тогтмол илэрхийлэл нь бичвэр дотроос тодорхой загварт нийцэх хэсгийг хайх, илрүүлэх, боловсруулахад ашиглагддаг вэб хөгжүүлэлтийн чухал хэрэгсэл юм. "Regex Туршигч" нь JavaScript-ийн regular expression-ийг өөрийн вэб хөтөч дээр шууд ажиллуулж, бичвэрийн загвартай хэрхэн таарч байгааг бодит хугацаанд турших боломжийг олгодог.
Энэхүү хэрэгсэл нь оруулсан загварын дагуу бичвэр дэх тохирох илэрц болон бүлэг бүрийг шууд тодруулан харуулдаг. Ингэснээр хөгжүүлэгчид болон хэрэглэгчид өөрсдийн бичсэн regex загвар нь зөв ажиллаж байгаа эсэхийг шалгах, тугуудын нөлөөг ойлгох, мөн хайлтын үр дүнгээс тодорхой хэсгүүдийг бүлгээр салган авахад туслах зорилготой.
Оролтын өгөгдөл ба тохиргоо
Туршилтыг үр дүнтэй ажиллуулахын тулд хэрэглэгч дараах үндсэн талбаруудыг бөглөж, тохируулна:
- Загвар (Pattern): Турших гэж буй regular expression загвар. Жишээлбэл, тоон утгуудыг хайхын тулд
\d+загварыг ашиглаж болно. - Тугууд (Flags): Хайлтын ажиллагааг нарийвчлах дараах дөрвөн төрлийн тугийг сонгох боломжтой:
- g (Global): Зөвхөн эхнийх биш, таарч буй бүх илэрцийг олно. Хэрэв энэ тугийг сонгохгүй бол зөвхөн хамгийн эхний тохирох илэрцийг буцаана.
- i: Том жижиг үсгийг үл тоомсорлож, ижил гэж үзнэ.
- m (Multiline):
^болон$тэмдэгтүүдийг бүхэл бичвэрийн биш, мөр бүрийн эхлэл ба төгсгөлд тааруулна. - s: Цэг (.) тэмдэгтийг шинэ мөр шилжих тэмдэгттэй ч тааруулна.
- Турших бичвэр: Загварыг туршиж үзэх бичвэрээ энд бичих эсвэл хуулж тавина уу.
Гаралтын үр дүн ба мэдээлэл
Оруулсан загвар болон бичвэрийг боловсруулсны дараа систем дараах үр дүнгүүдийг шууд харуулдаг:
- Тодруулсан илэрцүүд: Турших бичвэр доторх загварт тохирсон хэсгүүдийг өнгөөр ялгаж тодруулна.
- Илэрцүүд: Олдсон бүх илэрцийн жагсаалт. Хэрэв загварт хаалт ашиглан бүлэг үүсгэсэн бол илэрц бүрийн доор Бүлэг
{n}гэсэн тэмдэглэгээгээр хаалтад багтсан дэд хэсгүүдийг харуулна. - Тохирох илэрц:
{count}: Нийт олдсон тохирох илэрцийн тоог заана. - Тэмдэгт: Оруулсан бичвэрийн нийт тэмдэгтийн тоог харуулна.
Ажиллах дүрэм ба хязгаарлалтууд
Хэрэгсэл нь хэвийн ажиллагааг хангах, хөтчийг гацахаас сэргийлэх үүднээс дараах дүрмүүдийг баримталдаг:
- Хэрэв бичвэрээс тохирох загвар олдохгүй бол "Тохирох илэрц олдсонгүй." гэсэн бичиг гарна.
- Хэрэв бичсэн regular expression-ий синтакс алдаатай байвал "Хүчингүй regular expression байна." гэсэн алдааны мэдэгдэл харагдана.
- Хэрэв загварыг ажиллуулахад 2 секундээс илүү хугацаа зарцуулагдвал систем туршилтыг шууд цуцалж, "Энэ загварыг ажиллуулахад хэтэрхий их цаг зарцуулж байна — энэ нь маш удаан ажилладаг загвар байж магадгүй. Үүнийг хялбаршуулахыг оролдоорой." гэсэн анхааруулгыг харуулдаг. Энэ нь сүйрлийн буцах мөшгилт (catastrophic backtracking) үүсгэдэг оновчгүй загвараас сэргийлж буй хэрэг юм.
- Global (g) тугийг сонгосон үед систем хамгийн ихдээ 1,000 хүртэлх тохирох илэрцийг буцаах бөгөөд дэлгэц дээр дээд тал нь 100 ширхэг илэрцийн картыг харуулна. Хэрэв илэрцийн тоо хязгаараас давбал "Эхний
{max}-ийг харуулж байна." гэсэн тэмдэглэгээ гарна. - Хэрэглэгч "Арилгах" товчийг дарснаар оруулсан өгөгдлүүдийг цэвэрлэх бөгөөд энэ үед "Арилгсан." гэсэн төлөв харагдана.
Нууцлал ба өгөгдөл боловсруулалт
Энэхүү хэрэгслийг ашиглах үед таны хувийн нууцлал бүрэн хадгалагдана. Таны оруулсан загвар болон турших бичвэрийг зөвхөн таны хөтөч дээр туршина. BroBroGo вэбсайт руу ямар нэгэн өгөгдөл хуулагдахгүй бөгөөд сервер рүү илгээгдэхгүй.
Түгээмэл асуултууд
Энд өөрийн бичвэрийг хуулж тавих нь аюулгүй уу?
Тийм. Турших үйлдэл бүхэлдээ таны хөтөч дээр хийгддэг тул BroBroGo руу юу ч илгээгдэхгүй.
g/i/m/s тугуудын (flags) утга нь юу вэ?
g нь зөвхөн эхнийх биш, таарч буй бүх илэрцийг олно. i нь том жижиг үсгийг үл тоомсорлоно. m нь ^ болон $ тэмдэгтүүдийг бүхэл бичвэрийн биш, мөр бүрийн эхлэл ба төгсгөлд тааруулна. s нь цэг (.) тэмдэгтийг шинэ мөр шилжих тэмдэгттэй ч тааруулна.
Яагаад миний загварыг ажиллуулахад хэтэрхий их цаг зарцуулж байна гэж заав?
Зарим загварууд нь сүйрлийн буцах мөшгилт (catastrophic backtracking) үүсгэдэг — хөдөлгүүр нь бууж өгөхөөсөө өмнө асар олон тооны хослолыг туршиж үздэг бөгөөд энэ нь хөтчийн табыг гацааж болзошгүй. Энэ хэрэгсэл нь ийм зүйл тохиолдвол 2 секундын дараа туршилтыг цуцалдаг тул хуудас өөрөө хэзээ ч гацахгүй. (a+)+ гэх мэт давхардсан давталтуудыг хялбаршуулахыг оролдоорой.