การปรับปรุงการใช้ Regular Expressions ใน JavaScript

Regular Expressions เป็นสิ่งที่หนักมาก และทำงานค่อนข้างช้า เมื่อมีวิธีแก้ปัญหาทางเลือก ควรใช้วิธีนั้นจะดีกว่า

มาดูตัวอย่างกัน สมมติว่าเราต้องการตรวจสอบว่า สตริงบางตัวเริ่มต้นด้วยเครื่องหมายอัศเจรีย์หรือไม่ โปรแกรมเมอร์บางคนแก้ปัญหานี้โดยใช้ Regular Expression:

javascriptlet str = '!123';

if (/^!/.test(str)) {
  console.log('+++');
} else {
  console.log('---');
}

อย่างไรก็ตาม ปัญหาดังกล่าวมีวิธีแก้ที่ ทำงานได้เร็วกว่ามาก:

javascriptlet str = '!123';

if (str[0] == '!') {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

โค้ดต่อไปนี้ตรวจสอบการมีอยู่ของ สตริงย่อย '33' ในสตริง ทำการปรับปรุงให้ดีขึ้น:

javascriptlet str = '123345';

if (/33/.test(str)) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 2

โค้ดต่อไปนี้ตรวจสอบว่า สตริงลงท้ายด้วย '.html' หรือไม่ ทำการปรับปรุงให้ดีขึ้น:

javascriptlet str = 'index.html';

if (/\.html$/.test(str)) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

โค้ดต่อไปนี้ตัดช่องว่าง ที่ส่วนท้าย ออก ทำการปรับปรุงให้ดีขึ้น:

javascriptlet str = '  text  ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);