ข้อความ

Text Reverse

กลับข้อความ: ตามตัวอักษร ตามคำ (ลำดับคำ) หรือตามบรรทัด (ลำดับบรรทัด)

This tool reverses text three different ways: by character (letters run in reverse order), by word (words swap places but stay intact), or by line (line order is flipped).

How to use it

Common uses

Things to keep in mind

A naive reversal by Unicode code point breaks composite characters (emoji with modifiers, some languages' combining diacritics) — a correct implementation splits text into grapheme clusters rather than individual code points.

Word-mode reversal doesn't change the letter order inside each word — it only rearranges the words themselves, not a character-level reversal.

บทความเกี่ยวกับเครื่องมือนี้: การกลับข้อความ: ทำไมจึงพังกับอิโมจิ

คำถามที่พบบ่อย

โหมดการกลับด้านมีแบบใดบ้าง?

มีสามโหมด: กลับลำดับอักขระ, กลับลำดับคำโดยคงแต่ละคำไว้ครบถ้วน หรือกลับลำดับบรรทัดโดยคงแต่ละบรรทัดไว้ครบถ้วน

ทำไมการกลับด้านระดับอักขระอาจให้ผลลัพธ์ที่อ่านไม่ได้?

การกลับข้อความทีละอักขระอาจทำลายลำดับ Unicode แบบหลายไบต์ อีโมจิ หรืออักขระผสม ทำให้เกิดการแสดงผลที่เสียหายทางสายตา; การกลับระดับคำหรือบรรทัดไม่มีปัญหานี้เพราะย้ายทั้งบล็อกข้อความ

ข้อความที่ป้อนถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?

ไม่ การกลับด้านเกิดขึ้นทั้งหมดในเบราว์เซอร์ด้วย JavaScript โดยไม่มีการส่งไปยังเซิร์ฟเวอร์

grapheme cluster คืออะไร?

คือสิ่งที่มนุษย์รับรู้ว่าเป็น "อักขระที่มองเห็นหนึ่งตัว" แม้ว่าใน Unicode บางครั้งมันจะประกอบขึ้นจากหลาย code point — เช่น อีโมจิครอบครัวประกอบขึ้นจากอีโมจิเดี่ยวหลายตัวที่เชื่อมกันด้วยอักขระตัวเชื่อมพิเศษ การกลับข้อความที่ถูกต้องต้องเก็บ cluster เหล่านี้ไว้ด้วยกันเป็นหน่วยเดียว

สามารถกลับด้านอีโมจิให้ยังคงถูกต้องได้หรือไม่?

ได้ หากการกลับด้านแบ่งสตริงเป็น grapheme cluster ก่อนเปลี่ยนลำดับ ไม่ใช่แบ่งเป็น code point แต่ละตัว — เมื่อนั้นอีโมจิที่ประกอบขึ้นจากหลายส่วน (ตัวปรับโทนสีผิว ธงประเทศ) จะยังคงสมบูรณ์หลังการดำเนินการ

บทความ: ข้อความ

camelCase, snake_case, kebab-case: ควรใช้รูปแบบไหนเมื่อไหร่

เหตุใดจึงมี camelCase, snake_case และ kebab-case และแต่ละแบบมักใช้ที่ไหน

Text Diff: อัลกอริทึมหาความแตกต่างของข้อความทำงานอย่างไร

อัลกอริทึม diff หาชุดการเปลี่ยนแปลงที่น้อยที่สุดระหว่างข้อความสองเวอร์ชันได้อย่างไร

Regular Expression: พื้นฐานและกับดักของการจับคู่แบบโลภ

ความแตกต่างระหว่างการจับคู่แบบโลภและแบบขี้เกียจใน regex และเหตุใดจึงสำคัญในทางปฏิบัติ

การเรียงบรรทัด: ทำไมการเรียงตามตัวอักษรถึงต่างจากการเรียงตามตัวเลข

เหตุใดการเรียงตามตัวอักษรจึงปฏิบัติต่อตัวเลขเหมือนข้อความ และต่างจากการเรียงตามตัวเลขอย่างไร

การ Escape สตริง: ทำไมกฎถึงต่างกันใน JS, JSON, shell และ regex

เหตุใดจึงไม่มีกฎการ escape เดียวที่ใช้ได้ทุกที่ — JS, JSON, shell และ regex ต่างก็มีกฎของตัวเอง

CRLF กับ LF: ทำไมการขึ้นบรรทัดใหม่ยังคงสร้างปัญหา

ความแตกต่างระหว่าง CRLF กับ LF มาจากไหน และเหตุใดยังคงสร้างปัญหากับ git และสคริปต์

การนับตัวอักษรและคำ: ทำไม Unicode ทำให้ซับซ้อน

เหตุใดอิโมจิหนึ่งตัวที่เห็นด้วยตาจึงอาจประกอบด้วย code point หลายตัวใน Unicode

Lorem Ipsum: ข้อความหลอกนี้มาจากไหนและทำไมไม่มีความหมาย

ข้อความ Lorem Ipsum มาจากไหนจริง ๆ และเหตุใดจึงใช้ข้อความไร้ความหมายแทนข้อความจริง

Slugify: หัวข้อกลายเป็น URL ที่ใช้งานได้อย่างไร

หัวข้อบทความกลายเป็น URL ที่สะอาดและอ่านง่ายด้วยเครื่องหมายขีดได้อย่างไร

Markdown: ทำไมจึงกลายเป็นมาตรฐานของเอกสาร

เหตุใด Markdown จึงยังอ่านง่ายแม้ในรูปแบบดิบ ต่างจาก HTML

ช่องว่างที่มองไม่เห็น: ทำไมการเปรียบเทียบข้อความที่ดูเหมือนกันจึงล้มเหลว

ช่องว่างที่มองไม่เห็นเพียงตัวเดียวทำให้การเปรียบเทียบข้อความสองชิ้นที่ดูเหมือนกันล้มเหลวได้อย่างไร

การวิเคราะห์ความถี่ข้อความ: จาก word cloud สู่การถอดรหัส

การวิเคราะห์ความถี่ตัวอักษรช่วยถอดรหัสแบบแทนที่อักษรง่าย ๆ ในอดีตได้อย่างไร