ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: Centrinos ที่ 07 กรกฎาคม 2011, 19:49:54



หัวข้อ: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: Centrinos ที่ 07 กรกฎาคม 2011, 19:49:54
ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ

โทรศัพท์พื้นฐานของจีน
อ้างถึง
/^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

โทรศัพท์มือถือของจีน
อ้างถึง
/^(\+)?(86)?0?1\d{10}$/



มันทำงานยังไง อธิบายแบบละเอียดหน่อยนะครับ คือจะเอามาปรับใช้ แต่ยัง งง ๆ


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: smapan ที่ 07 กรกฎาคม 2011, 20:24:15
จองคิวรออ่าน  :wanwan022:


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: Centrinos ที่ 07 กรกฎาคม 2011, 20:54:58
ไม่มีคนมาตอบจริง ๆ เห้อออออ

เอาเป็นว่าตอนนี้ผมนั่งงมของโทรศัพท์มือถือจนได้ละ โดยการหาความยาวของเลขโทรศัพท์มือถือของจีนเข้าเทียบเอา

แหล่งข้อมูลเทียบจาก
อ้างถึง
[url]http://www.bloggang.com/viewblog.php?id=bfr&date=01-11-2006&group=3&gblog=4[/url]


โดยเอาตัวเลขนี้ 138 1797 6660 มาเทียบและก็ลองเขียน + รันสคริปดู

นับดูแล้วตัวเลขมีทังหมด 11 ตัว

อ้างถึง
/^(\+)?(86)?0?1\d{10}$/


แต่สคริป "\d{10}" มันนับแค่ 10 ตัว โดยไม่เอาตัวเลข 1 มาด้วยจึงทำให้ผมจับจุดได้หลังจากงมมานาน

เพราะฉนั้นเบอร์โทรศัพท์มือถือของไทยมี 9 ตัว เริ่มต้นด้วย 8 แล้วตามด้วยหมายเลข หลาย ๆ ท่านอาจจะงงว่าทำไมเริ่มด้วย 8 ผมก็งง ครับ :P

เลยลองไล่ ๆ หาอ่านจากหลาย ๆ ที่ ผมขออนุญาติไม่อ้าง ref นะครับ เยอะจนจำไม่ได้ จริง ๆ แล้วการโทรทางไกลระหว่างประเทศจำเป็นว่าจะต้องกดรหัสประเทศ ตามด้วยรหัสพื้นที่ แต่ไทย กับจีน หรือหลาย ๆ ประเทศไม่รู้นะ เอาเป็นว่าผมรู้เฉพาะที่ผมหาข้อมูลแล้วกัน จะมีรหัสบ่งบอกเฉพาะว่าเป็นโทรศัพท์มือถือ อย่างจีนใช้เลข 1 ของไทยใช้เลข 8 จริง ๆ แล้วการโทรไปหมายเลขไหนก็ไม่ต้องกด 0 นำหน้าก็ได้ ขึ้นด้วย 8 ตามด้วยหมายเลขได้เลย ผมลองแล้วได้ผม เพื่อยืนยันการตอบกระทู้ของตัวเอง จะบ้าตาย ถามเองตอบเอง :wanwan016:

ฉนั้นลบล้างความคิดเดิม ๆ ว่าโทรศัทพ์มือถือมีทั้งหมด 10 ตัวออกไปจากสมองให้หมด ให้คิดว่ามันมีแค่ 9 ตัว และ เลข 8 บอกให้เรารู้ว่าไอ้นี่มันคือมือถือ พอตัดเลข 8 ออกไป นั่นแหละคือหมายเลขโทรศัพท์มือถือที่แท้จริง

ผมเลยลองเขียน regular expression ของมือถือใหม่ดังนี้
อ้างถึง
/^(\+)?(66)?0?8\d{8}$/

เป็นอันว่าลองทดสอบแล้วได้ผลครับ
สามารถกรอกข้อมูลได้ทั้ง
+66812345678
และ
0812345678

สำหรับท่านที่อยากให้สามารถใส่ได้หลากหลายรูปแบบมากกว่านี้ลองนำไปปรับใช้ดูนะครับ

ปล.ได้ความรู้ใหม่เพิ่มอยู่อย่างนึง โทรหาเบอร์บ้าน เบอร์มือถือ ไม่ต้องกด 0 ก็โทรออกได้เว้ย

เอ่อ เดี๋ยวจะหาว่าผมรู้อยู่แล้ว ๆ มาถามทำไม ขอบอกตรง ๆ ครับ ไม่รู้จริง ๆ เพิ่งหา ๆ ลอง ๆ ทำ เพราะโดยส่วนตัวตอนเรียน regular expression ก็สอบตก


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: smapan ที่ 07 กรกฎาคม 2011, 21:00:11
ลองกดแล้ว ไม่กด 0 มันโทรไม่ติดอ่ะ  :P


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: Centrinos ที่ 07 กรกฎาคม 2011, 21:12:13
ลองกดแล้ว ไม่กด 0 มันโทรไม่ติดอ่ะ  :P

อ่อ ลืมบอก ผมลองเอา 12Call โทรออกนะ เครือข่ายอื่นยังไม่ได้ลอง


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: Centrinos ที่ 07 กรกฎาคม 2011, 23:18:34
ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ

โทรศัพท์พื้นฐานของจีน
อ้างถึง
/^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/
หมายถึง:
ข้อความ (String) ต้องขึ้นต้นด้วย /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/
ระหว่าง 1.อักขระ ในวงเล็บ หรือ 2.อักขระ ในวงเล็บ มีหรือไม่มีก็ได้  /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/
ไวยกรณ์ผิด Syntax Error จากตัวอักขระ - ควรจะเป็น \- หรือ ต้องไม่มี
1. วงเล็บเปิด 1 อักขระ มีหรือไม่มีก็ได้ /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/
และตามด้วยตัวเลขใดๆ 3-4 อักขระ /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/
ตามด้วยวงเล็บปิด 1 อักขระ มีหรือไม่มีก็ได้ /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

หรือ

2. ตัวเลขใดๆ 3-4 อักขระ มีหรือไม่มีก็ได้ /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/
ไวยกรณ์ผิด Syntax Error จากตัวอักขระ - ควรจะเป็น \- หรือ ต้องไม่มี

และ ตัวเลขใดๆ 7-8 อักขระ ท้ายสุดของข้อความ /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

โทรศัพท์มือถือของจีน
อ้างถึง
/^(\+)?(86)?0?1\d{10}$/

ขึ้นต้นข้อความ /^(\+)?(86)?0?1\d{10}$/
ด้วย เครื่องหมาย + 1 ตัว มีหรือไม่มีก็ไ้ด้ ^(\+)?(86)?0?1\d{10}$
ตามด้วย เลข 86 มีหรือไม่มีก็ไ้ด้ /^(\+)?(86)?0?1\d{10}$/
ตามด้วย เลข 0 มีหรือไม่มีก็ไ้ด้ /^(\+)?(86)?0?1\d{10}$/
ตามด้วย เลข 1 (ต้องมี 1 ตัว) /^(\+)?(86)?0?1\d{10}$/
และ ตัวเลขใดๆ 10 ตัว ท้ายสุดของข้อความ /^(\+)?(86)?0?1\d{10}$/

มันทำงานยังไง อธิบายแบบละเอียดหน่อยนะครับ คือจะเอามาปรับใช้ แต่ยัง งง ๆ

โอ้ววววว กระจ่างมากครับ +1 ให้เลย :wanwan002:


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: dreamer ที่ 09 กรกฎาคม 2011, 00:13:29
ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ

โทรศัพท์พื้นฐานของจีน
อ้างถึง
/^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

โทรศัพท์มือถือของจีน
อ้างถึง
/^(\+)?(86)?0?1\d{10}$/



มันทำงานยังไง อธิบายแบบละเอียดหน่อยนะครับ คือจะเอามาปรับใช้ แต่ยัง งง ๆ

วิธีแกะนะครับ

^ เป็นตัวบอกว่าเริ่มต้น เช่น ^5 หมายความต้องขึ้นต้นด้วยเลข 5
$ เป็นตัวบอกว่าสิ้นสุด เช่น  5$ หมายความว่าต้องลงท้ายด้วยเลข 5
? บอกว่า ตัวอักษรที่อยู่ข้างหน้า 1 ตัว จะมีหรือไม่มีก็ได้ เช่น X5? ประโยคที่เข้ากับเงื่อนไข อาจจะเป็น X5 หรือX ก็ได้
\d จะแทนตัวเลข 0-9 จำนวน 1 ตัว
\d{3} บอกว่าจะต้องมีตัวเลข 3 ตัว
\d{1,4} บอกว่าสามารถเป็นตัวเลขตั้งแต่ 1 ถึง 4 ตัว
+ จะแทนความหมายว่า ตั้งแต่หนึ่งตัวขึ้นไป เช่น 5+ หมายถึงประโยคนี้ต้องมีเลข 5 อย่างน้อย 1 ตัวคือ 5, 55,555 ก็ถูกหมด
\+ เมื่อมี \ มาอยู่ข้างหน้า หมายความว่า + จะเป็นเครื่องหมาย+ ธรรมดา ไม่ได้ทำงานอะไร
() จะเป็นการรวมตัวอักษร เช่น (789) หมายความ จะต้องมีตัวเลข 789 อยู่ด้วย , (789)? หมายความว่า จะมีตัวเลข 789 อยู่ด้วยหรือไม่ก็ได้ แต่ถ้ามี ก็ต้องมีครบทั้ง 3 ตัวจะมีแค่ 78 ก็ไม่ถูก
| จะแทนความหมายว่า หรือ เช่น (7|8|9) หมายความว่า จะเป็นเลข 7 หรือเลข 8 หรือเลข 9 ก็ได้ เช่น 70, 845, 9756 ก็ถูกต้องทั้งนั้น


-----
การวิเคราะห์
/^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

1. แบ่งออกเป็น 2 ส่วนก่อน /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)  และ  \d{7,8}$/
2. \d{7,8}$ หมายความตัวเลขด้านหลัง จะมีจำนวน 7 ถึง 8 ตัว
3.  /^((\(?\d{3,4}\)?)|(\d{3,4}-)?) มีข้อมูลอยู่ในวงเล็บ 2 ชุด คือ (\(?\d{3,4}\)?) และ  (\d{3,4}-) เชื่อมกันด้วย | ซึ่งแสดงว่า จะเป็นชุดใดก็ได้
4. (\(?\d{3,4}\)?) จะประกอบด้วย \(? หมายความว่า จะมี ( หรือไม่ก็ได้, \d{3,4} หมายความว่าจะต้องเป็นตัวเลข 3-4 ตัว  , \)? หมายความว่า จะมี ) หรือไม่ก็ได้
5. (\d{3,4}-) ประกอบด้วย \d{3,4} หมายความว่า ต้องเป็นตัวเลข 3 ถึง 4 ตัว, - จะต้องมีตเครื่องหมาย - ตามหลังตัวเลข 3 ถึง 4 ตัวข้างหน้าด้วย

สรุปตัวเลขที่ถูก pattern ได้ดังนี้
1231234567
12312345678
12341234567
123412345678
(1231234567
123)1234567
(123)1234567
(123412345678
1234)12345678
(1234)12345678
123-1234567
123-12345678
1234-1234567
1234-12345678

บางอันจะเห็นว่ามี ( หรือ ) แค่อย่างละอัน ไม่ได้เขียนผิดนะครับ pattern มันบอกแบบนั้น ผมลองแล้วก็ผ่านด้วย


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: Centrinos ที่ 26 สิงหาคม 2013, 21:40:13
ขออนุญาต ขุดเพื่อเพิ่มเติมข้อมูลนะครับ

จากเดิมตอนนี้ถาม และลองทำช่วงนั้นเบอร์โทรศัพท์มือถือ ยังมีขึ้นต้นเพียง 08 เท่านั้น แต่ตอนนี้เริ่มมี 09 โผล่มาอีกแล้ว เพราะฉนั้น regular expression ก็ต้องมีการเพิ่มเติมนิดหน่อยครับ

จากเดิม
โค๊ด:
/^(\+)?(66)?0?8\d{8}$/
ต้องเปลี่ยนเป็น
โค๊ด:
/^(\+)?(66)?0?(8|9)\d{8}$/

เพื่อให้รองรับหมายเลขโทรศัพท์อยู่ในปัจจุบันครับ หากอนาคตมีการเปลี่ยนแปลงเข้ามาอีกก็เพิ่มเติมเองได้ในส่วน > (ตัวเลขที่ต้องการจะเพิ่ม|8|9)

สำหรับโทรศัพท์บ้าน ขออนุญาตติดไว้ก่อน ยังไม่เคลียร์ครับ


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: khunzz ที่ 26 สิงหาคม 2013, 22:56:56
เข้ามาเอาความรู้ล้วน ๆ ^^


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: Loki ที่ 26 สิงหาคม 2013, 23:44:00
เข้ามาดูเทพ :")


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: 50kpm ที่ 26 สิงหาคม 2013, 23:47:57
+1 จขกท. โทษฐานถามเอง ตอบเอง

+1 คุณ dreamer ครับ

เด๋วกลับมาอ่าน ความรู้ทั้งนั้น ^^


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: pollpolball ที่ 27 สิงหาคม 2013, 04:27:54
ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ

โทรศัพท์พื้นฐานของจีน
อ้างถึง
/^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

โทรศัพท์มือถือของจีน
อ้างถึง
/^(\+)?(86)?0?1\d{10}$/



มันทำงานยังไง อธิบายแบบละเอียดหน่อยนะครับ คือจะเอามาปรับใช้ แต่ยัง งง ๆ

วิธีแกะนะครับ

^ เป็นตัวบอกว่าเริ่มต้น เช่น ^5 หมายความต้องขึ้นต้นด้วยเลข 5
$ เป็นตัวบอกว่าสิ้นสุด เช่น  5$ หมายความว่าต้องลงท้ายด้วยเลข 5
? บอกว่า ตัวอักษรที่อยู่ข้างหน้า 1 ตัว จะมีหรือไม่มีก็ได้ เช่น X5? ประโยคที่เข้ากับเงื่อนไข อาจจะเป็น X5 หรือX ก็ได้
\d จะแทนตัวเลข 0-9 จำนวน 1 ตัว
\d{3} บอกว่าจะต้องมีตัวเลข 3 ตัว
\d{1,4} บอกว่าสามารถเป็นตัวเลขตั้งแต่ 1 ถึง 4 ตัว
+ จะแทนความหมายว่า ตั้งแต่หนึ่งตัวขึ้นไป เช่น 5+ หมายถึงประโยคนี้ต้องมีเลข 5 อย่างน้อย 1 ตัวคือ 5, 55,555 ก็ถูกหมด
\+ เมื่อมี \ มาอยู่ข้างหน้า หมายความว่า + จะเป็นเครื่องหมาย+ ธรรมดา ไม่ได้ทำงานอะไร
() จะเป็นการรวมตัวอักษร เช่น (789) หมายความ จะต้องมีตัวเลข 789 อยู่ด้วย , (789)? หมายความว่า จะมีตัวเลข 789 อยู่ด้วยหรือไม่ก็ได้ แต่ถ้ามี ก็ต้องมีครบทั้ง 3 ตัวจะมีแค่ 78 ก็ไม่ถูก
| จะแทนความหมายว่า หรือ เช่น (7|8|9) หมายความว่า จะเป็นเลข 7 หรือเลข 8 หรือเลข 9 ก็ได้ เช่น 70, 845, 9756 ก็ถูกต้องทั้งนั้น


-----
การวิเคราะห์
/^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

1. แบ่งออกเป็น 2 ส่วนก่อน /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)  และ  \d{7,8}$/
2. \d{7,8}$ หมายความตัวเลขด้านหลัง จะมีจำนวน 7 ถึง 8 ตัว
3.  /^((\(?\d{3,4}\)?)|(\d{3,4}-)?) มีข้อมูลอยู่ในวงเล็บ 2 ชุด คือ (\(?\d{3,4}\)?) และ  (\d{3,4}-) เชื่อมกันด้วย | ซึ่งแสดงว่า จะเป็นชุดใดก็ได้
4. (\(?\d{3,4}\)?) จะประกอบด้วย \(? หมายความว่า จะมี ( หรือไม่ก็ได้, \d{3,4} หมายความว่าจะต้องเป็นตัวเลข 3-4 ตัว  , \)? หมายความว่า จะมี ) หรือไม่ก็ได้
5. (\d{3,4}-) ประกอบด้วย \d{3,4} หมายความว่า ต้องเป็นตัวเลข 3 ถึง 4 ตัว, - จะต้องมีตเครื่องหมาย - ตามหลังตัวเลข 3 ถึง 4 ตัวข้างหน้าด้วย

สรุปตัวเลขที่ถูก pattern ได้ดังนี้
1231234567
12312345678
12341234567
123412345678
(1231234567
123)1234567
(123)1234567
(123412345678
1234)12345678
(1234)12345678
123-1234567
123-12345678
1234-1234567
1234-12345678

บางอันจะเห็นว่ามี ( หรือ ) แค่อย่างละอัน ไม่ได้เขียนผิดนะครับ pattern มันบอกแบบนั้น ผมลองแล้วก็ผ่านด้วย


ต้องแบ่งให้เป็นสัดส่วนแบบนี้ครับผม +1 เลย


หัวข้อ: Re: ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ
เริ่มหัวข้อโดย: Ozone ที่ 27 สิงหาคม 2013, 06:48:18
ท่านที่เก่ง regular expression ช่วยอธิบายหน่อยครับ

โทรศัพท์พื้นฐานของจีน
อ้างถึง
/^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

โทรศัพท์มือถือของจีน
อ้างถึง
/^(\+)?(86)?0?1\d{10}$/
+1



มันทำงานยังไง อธิบายแบบละเอียดหน่อยนะครับ คือจะเอามาปรับใช้ แต่ยัง งง ๆ

วิธีแกะนะครับ

^ เป็นตัวบอกว่าเริ่มต้น เช่น ^5 หมายความต้องขึ้นต้นด้วยเลข 5
$ เป็นตัวบอกว่าสิ้นสุด เช่น  5$ หมายความว่าต้องลงท้ายด้วยเลข 5
? บอกว่า ตัวอักษรที่อยู่ข้างหน้า 1 ตัว จะมีหรือไม่มีก็ได้ เช่น X5? ประโยคที่เข้ากับเงื่อนไข อาจจะเป็น X5 หรือX ก็ได้
\d จะแทนตัวเลข 0-9 จำนวน 1 ตัว
\d{3} บอกว่าจะต้องมีตัวเลข 3 ตัว
\d{1,4} บอกว่าสามารถเป็นตัวเลขตั้งแต่ 1 ถึง 4 ตัว
+ จะแทนความหมายว่า ตั้งแต่หนึ่งตัวขึ้นไป เช่น 5+ หมายถึงประโยคนี้ต้องมีเลข 5 อย่างน้อย 1 ตัวคือ 5, 55,555 ก็ถูกหมด
\+ เมื่อมี \ มาอยู่ข้างหน้า หมายความว่า + จะเป็นเครื่องหมาย+ ธรรมดา ไม่ได้ทำงานอะไร
() จะเป็นการรวมตัวอักษร เช่น (789) หมายความ จะต้องมีตัวเลข 789 อยู่ด้วย , (789)? หมายความว่า จะมีตัวเลข 789 อยู่ด้วยหรือไม่ก็ได้ แต่ถ้ามี ก็ต้องมีครบทั้ง 3 ตัวจะมีแค่ 78 ก็ไม่ถูก
| จะแทนความหมายว่า หรือ เช่น (7|8|9) หมายความว่า จะเป็นเลข 7 หรือเลข 8 หรือเลข 9 ก็ได้ เช่น 70, 845, 9756 ก็ถูกต้องทั้งนั้น


-----
การวิเคราะห์
/^((\(?\d{3,4}\)?)|(\d{3,4}-)?)\d{7,8}$/

1. แบ่งออกเป็น 2 ส่วนก่อน /^((\(?\d{3,4}\)?)|(\d{3,4}-)?)  และ  \d{7,8}$/
2. \d{7,8}$ หมายความตัวเลขด้านหลัง จะมีจำนวน 7 ถึง 8 ตัว
3.  /^((\(?\d{3,4}\)?)|(\d{3,4}-)?) มีข้อมูลอยู่ในวงเล็บ 2 ชุด คือ (\(?\d{3,4}\)?) และ  (\d{3,4}-) เชื่อมกันด้วย | ซึ่งแสดงว่า จะเป็นชุดใดก็ได้
4. (\(?\d{3,4}\)?) จะประกอบด้วย \(? หมายความว่า จะมี ( หรือไม่ก็ได้, \d{3,4} หมายความว่าจะต้องเป็นตัวเลข 3-4 ตัว  , \)? หมายความว่า จะมี ) หรือไม่ก็ได้
5. (\d{3,4}-) ประกอบด้วย \d{3,4} หมายความว่า ต้องเป็นตัวเลข 3 ถึง 4 ตัว, - จะต้องมีตเครื่องหมาย - ตามหลังตัวเลข 3 ถึง 4 ตัวข้างหน้าด้วย

สรุปตัวเลขที่ถูก pattern ได้ดังนี้
1231234567
12312345678
12341234567
123412345678
(1231234567
123)1234567
(123)1234567
(123412345678
1234)12345678
(1234)12345678
123-1234567
123-12345678
1234-1234567
1234-12345678

บางอันจะเห็นว่ามี ( หรือ ) แค่อย่างละอัน ไม่ได้เขียนผิดนะครับ pattern มันบอกแบบนั้น ผมลองแล้วก็ผ่านด้วย