[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-1-1-all-js2go-ep25-regular-expressions-all--*":3,"academy-blog-translations-61q73o19mzkt7rt":79},{"data":4,"page":78,"perPage":78,"totalItems":78,"totalPages":78},[5],{"alt":6,"collectionId":7,"collectionName":8,"content":9,"cover_image":10,"cover_image_path":11,"created":12,"created_by":13,"expand":14,"id":72,"keywords":73,"locale":49,"published_at":74,"scheduled_at":13,"school_blog":70,"short_description":75,"slug":76,"status":68,"title":6,"updated":77,"updated_by":13,"views":71},"JS2GO EP.25 การใช้งาน Regular Expressions ใน JavaScript และ Go","sclblg987654321","school_blog_translations","\u003Cp>Regular Expressions (Regex) เป็นเครื่องมือสำคัญสำหรับการจัดการข้อความ เช่น การค้นหา แทนที่ ตรวจสอบ pattern ของ input หรือการ validate ข้อมูล ในบทความนี้เราจะสอนการใช้งาน Regex ใน JavaScript และ Go พร้อมตัวอย่างโค้ด และแนวทางปฏิบัติที่เหมาะสม เพื่อให้คุณสามารถทำงานกับข้อความและ pattern ได้อย่างมืออาชีพ\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>1. Regular Expressions ใน JavaScript\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript มี object built-in \u003Ccode inline=\"\">RegExp\u003C\u002Fcode> และรองรับ literal syntax\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>การสร้าง Regular Expression\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">\u002F\u002F Literal syntax\nconst regex1 = \u002Fhello\u002Fi; \u002F\u002F i = case-insensitive\n\n\u002F\u002F Constructor\nconst regex2 = new RegExp('world', 'g'); \u002F\u002F g = global\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ตรวจสอบ pattern\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">const text = \"Hello World\";\n\nconsole.log(regex1.test(text)); \u002F\u002F true\nconsole.log(text.match(regex2)); \u002F\u002F [\"World\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>แทนที่ข้อความ\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">const sentence = \"I love JavaScript\";\nconst newSentence = sentence.replace(\u002FJavaScript\u002F, \"Go\");\nconsole.log(newSentence); \u002F\u002F I love Go\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ค้นหาข้อความทั้งหมด\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">const emails = \"contact@site.com, admin@site.com\";\nconst regex = \u002F\\w+@\\w+\\.\\w+\u002Fg;\nconst matches = emails.match(regex);\nconsole.log(matches); \u002F\u002F [\"contact@site.com\", \"admin@site.com\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>ข้อดีของ JavaScript Regex\u003Cbr>✔️ Syntax concise และ inline ใช้งานง่าย\u003Cbr>✔️ รองรับ flags เช่น g, i, m, u, y\u003Cbr>✔️ ทำงานร่วมกับ string methods (\u003Ccode inline=\"\">match\u003C\u002Fcode>, \u003Ccode inline=\"\">replace\u003C\u002Fcode>, \u003Ccode inline=\"\">split\u003C\u002Fcode>, \u003Ccode inline=\"\">test\u003C\u002Fcode>)\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>ข้อจำกัด\u003Cbr>⚠️ ไม่มี type-checking\u003Cbr>⚠️ Complex regex อาจอ่านยาก\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>2. Regular Expressions ใน Go\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go มี package \u003Ccode inline=\"\">regexp\u003C\u002Fcode> สำหรับจัดการ Regular Expression\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>การสร้าง Regular Expression\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">import (\n    \"fmt\"\n    \"regexp\"\n)\n\nfunc main() {\n    regex := regexp.MustCompile(`\\w+@\\w+\\.\\w+`)\n    text := \"contact@site.com admin@site.com\"\n    matches := regex.FindAllString(text, -1)\n    fmt.Println(matches) \u002F\u002F [contact@site.com admin@site.com]\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ตรวจสอบ pattern\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">match, _ := regexp.MatchString(`hello`, \"Hello World\")\nfmt.Println(match) \u002F\u002F true หรือ false\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>แทนที่ข้อความ\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">re := regexp.MustCompile(`JavaScript`)\nsentence := \"I love JavaScript\"\nnewSentence := re.ReplaceAllString(sentence, \"Go\")\nfmt.Println(newSentence) \u002F\u002F I love Go\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>ข้อดีของ Go Regex\u003Cbr>✔️ Type-safe และ compile-time error checking\u003Cbr>✔️ รองรับฟังก์ชันครบถ้วน: \u003Ccode inline=\"\">Match\u003C\u002Fcode>, \u003Ccode inline=\"\">Find\u003C\u002Fcode>, \u003Ccode inline=\"\">Replace\u003C\u002Fcode>, \u003Ccode inline=\"\">Split\u003C\u002Fcode>\u003Cbr>✔️ ทำงานเร็วและเหมาะกับ backend \u002F server\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>ข้อจำกัด\u003Cbr>⚠️ Syntax verbose สำหรับ regex complex\u003Cbr>⚠️ ต้อง import package และใช้ \u003Ccode inline=\"\">MustCompile\u003C\u002Fcode> \u002F \u003Ccode inline=\"\">Compile\u003C\u002Fcode>\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>3. แนวทางปฏิบัติที่เหมาะสม\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ ใช้ regex literals \u002F MustCompile ให้ชัดเจน\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript: \u003Ccode inline=\"\">\u002Fpattern\u002Fflags\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>Go: \u003Ccode inline=\"\">regexp.MustCompile(\"pattern\")\u003C\u002Fcode>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ ตรวจสอบ input ก่อนใช้งาน เพื่อลดข้อผิดพลาดและ performance cost\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ ใช้ flags \u002F options ให้เหมาะสม\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript: \u003Ccode inline=\"\">g\u003C\u002Fcode>, \u003Ccode inline=\"\">i\u003C\u002Fcode>, \u003Ccode inline=\"\">m\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>Go: compile regex ด้วย pattern ที่เหมาะสม\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ ทดสอบ regex ด้วยตัวอย่างหรือ unit test เพื่อแน่ใจว่า regex ครอบคลุมทุกกรณี\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Chr>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>สรุปเปรียบเทียบ Regex JavaScript vs Go\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cfigure class=\"table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Feature\u003C\u002Fth>\u003Cth>JavaScript\u003C\u002Fth>\u003Cth>Go\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Object\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">RegExp\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">regexp.Regexp\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Create\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">\u002Fpattern\u002Fflags\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">regexp.MustCompile(\"pattern\")\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Match\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">test()\u003C\u002Fcode>, \u003Ccode inline=\"\">match()\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">MatchString()\u003C\u002Fcode>, \u003Ccode inline=\"\">FindAllString()\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Replace\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">replace()\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">ReplaceAllString()\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Split\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">split()\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">Split()\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Flags \u002F Options\u003C\u002Ftd>\u003Ctd>g, i, m, u, y\u003C\u002Ftd>\u003Ctd>Built-in in pattern (no literal flags)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Type Safety\u003C\u002Ftd>\u003Ctd>❌ No\u003C\u002Ftd>\u003Ctd>✔️ Yes\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>คำแนะนำ\u003Cbr>✔️ Frontend \u002F Web app → ใช้ JavaScript Regex สำหรับ validation หรือ input\u003Cbr>✔️ Backend \u002F Server \u002F Data processing → ใช้ Go Regex สำหรับ performance และ type-safe\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>ตอนต่อไป\u003C\u002Fh2>\u003Cp>ใน EP.26 ของซีรีส์ JS2GO เราจะพาคุณไปเรียนรู้ การใช้ Environment Variables และ Configurations ใน Go และ Node.js เพื่อจัดการ configuration ของแอปพลิเคชันอย่างปลอดภัยและยืดหยุ่น\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>\u003Cstrong>อ่านบทความ Series อื่นๆ\u003C\u002Fstrong>\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FGolang\">\u003Cstrong>Golang The Series\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FJS2GO\">\u003Cstrong>JS2GO\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FTailwind%20CSS\">\u003Cstrong>10 Ep ที่จะให้คุณเป็นมือโปร Tailwind CSS ในชั่วข้ามคืน\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cstrong>🔵 Facebook: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.academy.th\">\u003Cstrong>https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.academy.th\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🔴 YouTube : \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUC2eI2RxcA2zbTqZyHyWIfRg\">\u003Cstrong>Superdev Academy\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>📸 Instagram: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.instagram.com\u002Fsuperdevschool\u002F\">\u003Cstrong>Superdev Academy\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🎬 TikTok: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\">\u003Cstrong>https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🌐 Website: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdevacademy.com\u002F\">\u003Cstrong>https:\u002F\u002Fwww.superdevacademy.com\u002F\u003C\u002Fstrong>\u003C\u002Fa>\u003Cstrong>&nbsp;\u003C\u002Fstrong>\u003C\u002Fp>","49_11zon_rjqi213ill.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fe1rvdq70gboiisb\u002F49_11zon_rjqi213ill.webp","2026-03-04 08:46:11.098Z","",{"keywords":15,"locale":43,"school_blog":53},[16,23,28,33,38],{"collectionId":17,"collectionName":18,"created":19,"created_by":13,"id":20,"name":21,"updated":22,"updated_by":13},"sclkey987654321","school_keywords","2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":17,"collectionName":18,"created":24,"created_by":13,"id":25,"name":26,"updated":27,"updated_by":13},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":17,"collectionName":18,"created":29,"created_by":13,"id":30,"name":31,"updated":32,"updated_by":13},"2026-03-04 08:46:10.733Z","e7ggfuwen1gbecj","Regex","2026-04-10 16:13:09.768Z",{"collectionId":17,"collectionName":18,"created":34,"created_by":13,"id":35,"name":36,"updated":37,"updated_by":13},"2026-03-04 08:46:10.447Z","5uf4iuaxo5eayg3","Regular Expressions","2026-04-10 16:13:09.601Z",{"collectionId":17,"collectionName":18,"created":39,"created_by":13,"id":40,"name":41,"updated":42,"updated_by":13},"2026-03-04 08:45:30.765Z","nayuhpre9emd5xw","JS2GO","2026-04-10 16:12:59.160Z",{"code":44,"collectionId":45,"collectionName":46,"created":47,"flag":48,"id":49,"is_default":50,"label":51,"updated":52},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":54,"collectionId":55,"collectionName":56,"expand":57,"id":70,"views":71},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":58},{"blogIds":59,"collectionId":60,"collectionName":61,"created":62,"created_by":13,"id":54,"image":63,"image_alt":13,"image_path":64,"label":65,"name":41,"priority":66,"publish_at":67,"scheduled_at":13,"status":68,"updated":69,"updated_by":13},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":41,"th":41},10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","61q73o19mzkt7rt",210,"e1rvdq70gboiisb",[20,25,30,35,40],"2025-10-02 09:15:15.835Z","เรียนรู้การใช้งาน Regular Expressions (Regex) ใน JavaScript และ Go พร้อมตัวอย่างโค้ดและแนวทางปฏิบัติที่เหมาะสม เพื่อจัดการข้อความ ตรวจสอบ pattern และแทนที่ข้อมูลได้อย่างมืออาชีพ","js2go-ep25-regular-expressions","2026-04-25 02:48:01.221Z",1,{"th":76}]