jQuery.thaiTel – แปลงเบอร์โทร (แบบไทยๆ) ให้เหมาะกับการใช้งาน

อ๊ะแฮ่ม..
Entry นี้ภูมิใจนำเสนอ jQuery Plugin ตัวแรกที่เผยแพร่สู่สาธารณะของผมครับ 😁

(ขออธิบายสั้นๆ สำหรับบุคคลทั่วไปนะครับ
jQuery
คือ ‘โค้ด’ ยอดนิยมตัวหนึ่งที่ใช้ในงานพัฒนาเว็บไซต์ ..เว็บจำนวนไม่น้อยใช้สิ่งนี้

และ  jQuery Plugin ก็คือโค้ดที่เขียนขึ้นมาสำหรับใช้ร่วมกับ jQuery เพื่อทำงานเฉพาะทางอะไรสักอย่าง (แล้วแต่วัตถุประสงค์ของคนเขียน)
..สรุปแบบดื้อๆ ก็คือผมกำลังจะนำเสนอโค้ดอะไรสักอย่างที่เกี่ยวกับการนำไปใช้กับเว็บไซต์ครับ
ถ้าผู้อ่านไม่สนใจเกี่ยวกับการทำเว็บ หรืออะไรที่เกริ่นๆ ไปข้างต้น ..ข้ามบทความนี้ไปได้เลยครับ)

(อ้ะ ..กลับมาเรื่องเดิม)

มันมีชื่อว่า..

jQuery.thaiTel

เป็นปลั๊กอินที่พยายามแปลงข้อมูลเบอร์โทรศัพท์ไทย โดยเฉพาะอย่างยิ่งกับข้อมูลแบบ text ที่ไม่มีการ validate หรือบังคับรูปแบบ (format) ชัดเจนมาก่อน
และโดยเฉพาะอย่างยิ่งยวด กับข้อมูลที่มีรูปแบบการเขียนแบบไทยๆ ให้เป็นข้อมูลที่ไทยน้อยลงจนพอจะสามารถไปใช้กับส่วนงานอื่นๆ ได้

ตัวอย่างเช่น สมมุติว่าจะสร้าง link สำหรับโทรออกผ่านโปรโตคอล tel:* ด้วยข้อมูล (string) เบอร์โทรศัพท์ 3 รายการที่ไม่มีการ validate หรือบังคับฟอร์แมต ประมาณนี้..

<a href="tel:098 765-4321">
  098 765-4321
</a>

<a href="tel:02-345-6789-91, 02-888-8888">
  02-345-6789-91, 02-888-8888
</a>

<a href="tel:055 666 777 (ต่อ 123)"> 
  055 666 777 (ต่อ 123)
</a>

พอจะเห็นประเด็นที่ผมเน้นสีแดงๆ ใช่ไหมครับ?
ว่าโปรแกรม/แอพที่รับช่วงต่อจากการเรียกโปรโตคอล tel ไปอาจจะไม่สามารถตีความข้อมูลส่วนดังกล่าวได้ อะไรทำนองนี้..
สิ่งที่พอจะทำได้สำหรับผู้พัฒนาเว็บ กับข้อมูลลักษณะนี้ ..ก็คงแค่แสดงเป็นตัวหนังสืออย่างเดียว, ให้ user ตีความและไปกดโทรเอาเอง แค่นั้น..จบ

Plugin นี้(พยายาม)แก้ปัญหาลักษณะข้างต้นครับ

ผู้อ่านอาจจะนึกแย้งว่า ..ก็แล้วถ้าข้อมูลมันไม่ถูก validated + formatted ตั้งแต่แรก จะไปเหนื่อยทำลิงก์ทำไม มีความจำเป็นด้วยเหรอ ฯลฯ
ส่วนตัวแล้วผมก็คิดงี้ครับ
..กระทั่งไม่กี่วันก่อน ผมเจอโจทย์จากงานประจำอันหนึ่ง ที่ค่อนข้างจำเป็นที่จะต้องสร้างลิงก์ลักษณะนี้
แม้จะยอมรับได้ว่ามันอาจจะมีความผิดพลาดได้อยู่บ้าง แต่ถ้าเป็นไปได้ก็อยากให้ลิงก์ส่วนใหญ่สามารถใช้งานได้จริง 😞

ขอเล่าแรงบันดาลใจของปลั๊กอินตัวนี้อีกเรื่องครับ
ที่มาคือจากไอ้โจทย์ข้างต้นนี่แหละ ..แต่จริงๆ แล้วมันเป็นงานของเพื่อนร่วมงานท่านหนึ่ง (ที่เป็นโปรแกรมเมอร์ชาวต่างชาติ)
คือเขามาขอคำปรึกษาผม (คนไทย) ว่ามีเบอร์โทรในระบบเบอร์หนึ่งที่เขาไม่เข้าใจว่ามัน(กรอก)ผิดหรือเปล่า เพราะเลขมันยาวเกินมาหนึ่งตัว ประมาณนี้..

02-222-2222-3

..พอผมอธิบายว่ามันคือการเขียนแบบไทยสไตล์ที่มีความหมายว่าเป็นสองหมายเลขเท่านั้นแหละฮะ
ชาวต่างชาติท่านนี้ก็กุมขมับเลย ..ประมาณว่าแล้วไอจะไปตรัสรู้ฟอร์แมตพวกยูได้ยังไง๊!
ไหนจะเรื่องเบอร์โทรสามารถมีได้ 8-9 หลัก (ไม่นับ 0 หรือ country code) อีก แล้วจะจำแนกกันยังไงไหวว่านี่คือหลักสุดท้ายจริงๆ หรือเลขช่วงแบบข้างต้น ฯลฯ

..ที่สุดผมก็เลยเอาปัญหาที่ว่ามาเขียนเป็นปลั๊กอินขึ้นมาครับ 😅

สำหรับผู้ที่สนใจ
เชิญรับชมตัวอย่างที่ https://www.sovoboys.net/github/jquery.thaitel
และดาวน์โหลด+ดูวิธีใช้งานได้ที่ https://github.com/sovoboys/jQuery.thaiTel ครับ

Leave a Reply

Your email address will not be published. Required fields are marked *