การปรับปรุงการใช้ Regular Expressions ใน JavaScript
Regular Expressions เป็นสิ่งที่หนักมาก และทำงานค่อนข้างช้า เมื่อมีวิธีแก้ปัญหาทางเลือก ควรใช้วิธีนั้นจะดีกว่า
มาดูตัวอย่างกัน สมมติว่าเราต้องการตรวจสอบว่า สตริงบางตัวเริ่มต้นด้วยเครื่องหมายอัศเจรีย์หรือไม่ โปรแกรมเมอร์บางคนแก้ปัญหานี้โดยใช้ Regular Expression:
let str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
อย่างไรก็ตาม ปัญหาดังกล่าวมีวิธีแก้ที่ ทำงานได้เร็วกว่ามาก:
let str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
โค้ดต่อไปนี้ตรวจสอบการมีอยู่ของ
สตริงย่อย '33' ในสตริง
ทำการปรับปรุงให้ดีขึ้น:
let str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
โค้ดต่อไปนี้ตรวจสอบว่า
สตริงลงท้ายด้วย '.html' หรือไม่
ทำการปรับปรุงให้ดีขึ้น:
let str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
โค้ดต่อไปนี้ตัดช่องว่าง ที่ส่วนท้าย ออก ทำการปรับปรุงให้ดีขึ้น:
let str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);