ToolDeck

ตัวสร้าง URL Slug

แปลงข้อความใดๆ เป็น slug ที่สะอาดและเป็นมิตรต่อ URL

ลองตัวอย่าง
ตัวคั่น

ข้อความป้อนเข้า

Slug

ประมวลผลในเครื่อง · ปลอดภัยในการวางข้อมูลลับ
Slug จะปรากฏที่นี่…

URL Slug คืออะไร?

URL slug คือส่วนหนึ่งของที่อยู่เว็บที่ระบุหน้าเฉพาะในรูปแบบที่มนุษย์อ่านได้ ใน URL https://example.com/blog/my-first-post นั้น slug คือ my-first-post ตัวสร้าง slug จะแปลงชื่อหน้าหรือคำอธิบายให้กลายเป็นสตริงที่มีเฉพาะตัวอักษรพิมพ์เล็ก ตัวเลข และยัติภังค์ (หรือตัวคั่นที่เลือก) กระบวนการนี้จะลบช่องว่าง ถอด accent และ diacritics ตัดอักขระพิเศษออก และทำให้ช่องว่างหลายช่องกลายเป็นตัวคั่นเดี่ยว

การสร้าง slug เป็นขั้นตอนมาตรฐานในระบบจัดการเนื้อหา (CMS) เครื่องมือสร้างเว็บไซต์แบบสแตติก แพลตฟอร์มบล็อก และแอปพลิเคชันใดๆ ที่ดึง URL จากข้อมูลที่ผู้ใช้ป้อน WordPress, Ghost, Hugo, Next.js และ Django ล้วนมีลอจิกการสร้าง slug เนื่องจาก URL ที่อ่านได้ช่วยเพิ่มทั้งความสะดวกในการใช้งานและการปรับแต่งสำหรับเครื่องมือค้นหา slug ที่มีรูปแบบดีจะบอกผู้ใช้ว่าหน้านั้นมีเนื้อหาอะไรก่อนที่จะคลิกลิงก์

คำว่า "slug" มาจากการพิมพ์หนังสือพิมพ์ ซึ่งหมายถึงป้ายสั้นๆ ที่ใช้ระบุเรื่องราวระหว่างการผลิต ในการพัฒนาเว็บ slug ทำหน้าที่เดียวกัน: เป็นตัวระบุที่กะทัดรัด ไม่ซ้ำกัน และปลอดภัยสำหรับ URL ที่ได้จากชื่อหรือชื่อยาวกว่า เนื่องจาก slug ถูกสร้างขึ้นโดยโปรแกรม ตัวสร้าง slug ที่เชื่อถือได้จึงรับประกันความสม่ำเสมอในทุกหน้าและทุก locale

ทำไมต้องใช้ตัวสร้าง Slug นี้?

การสร้าง URL slug ด้วยมือนั้นเสี่ยงต่อข้อผิดพลาด การลืมถอด accent ทิ้ง ปล่อยให้มียัติภังค์ซ้อน หรือพลาดกรณีพิเศษของ Unicode อาจทำให้ URL เสียหายหรือดูไม่สวยงาม เครื่องมือนี้จัดการปัญหาเหล่านั้นโดยอัตโนมัติ

แปลงได้ทันที
วางหรือพิมพ์ข้อความใดๆ แล้วดู slug ที่อัปเดตแบบเรียลไทม์ ไม่ต้องส่งฟอร์ม ไม่ต้องโหลดหน้าใหม่ มีประโยชน์เมื่อต้องการสร้าง slug สำหรับชื่อบทความหรือชื่อสินค้าหลายรายการพร้อมกัน
🔒
ประมวลผลแบบเน้นความเป็นส่วนตัว
การสร้าง slug ทั้งหมดทำงานในเบราว์เซอร์ของคุณ ข้อความของคุณไม่เคยออกจากหน้า ดังนั้นคุณสามารถแปลงชื่อร่างบทความ ชื่อโปรเจกต์ภายใน หรือชื่อสินค้าที่ยังไม่เปิดตัวได้อย่างปลอดภัย
⚙️
ปรับแต่งผลลัพธ์ได้
เลือกตัวคั่นระหว่างยัติภังค์ ขีดล่าง หรือจุด สลับตัวพิมพ์เล็กเปิดหรือปิด ครอบคลุมรูปแบบ slug ที่พบบ่อยที่สุดในเฟรมเวิร์กและ CMS ต่างๆ
🌐
รองรับ Unicode และ Accent
ตัวสร้างใช้การทำให้เป็นมาตรฐาน NFD เพื่อถอด diacritics ออกจากอักขระที่มี accent Café กลายเป็น cafe, naïve กลายเป็น naive อักขระที่ไม่ใช่ภาษาละตินซึ่งไม่สามารถถอดเสียงได้จะถูกลบออกอย่างสะอาด

กรณีการใช้งานตัวสร้าง Slug

นักพัฒนา Frontend — การวางแผนเส้นทาง
สร้าง slug ที่สม่ำเสมอสำหรับเส้นทางหน้าใน React Router, Next.js หรือ Nuxt ก่อนเชื่อมต่อส่วน dynamic route ยืนยันว่าชื่อที่มีอักขระพิเศษสร้าง path ที่สะอาด
วิศวกร Backend — ตัวระบุฐานข้อมูล
สร้าง slug ที่ปลอดภัยสำหรับ URL สำหรับบันทึกฐานข้อมูลที่ต้องการตัวระบุที่มนุษย์อ่านได้ Slug ทำงานได้ดีเป็น key รองควบคู่กับ ID ตัวเลขสำหรับ REST API endpoint เช่น /api/products/wireless-headphones
DevOps — การตั้งชื่อไฟล์คอนฟิก
แปลงชื่อบริการหรือป้ายสภาพแวดล้อมเป็นสตริงที่ปลอดภัยสำหรับระบบไฟล์สำหรับไฟล์คอนฟิก แท็ก Docker image หรือชื่อ Kubernetes resource ที่ไม่อนุญาตให้ใช้อักขระพิเศษ
วิศวกร QA — การสร้างข้อมูลทดสอบ
สร้าง slug หลายรูปแบบจากชื่อกรณีทดสอบอย่างรวดเร็วเพื่อยืนยัน URL routing, กฎ redirect และพฤติกรรม canonical tag ข้ามสภาพแวดล้อม staging
วิศวกรข้อมูล — การทำให้คอลัมน์เป็นมาตรฐาน
ทำให้ header คอลัมน์ที่ยุ่งเหยิงจากการนำเข้า CSV หรือ Excel กลายเป็นตัวระบุ snake_case หรือ kebab-case ที่สม่ำเสมอเพื่อใช้ใน database schema หรือ data pipeline
นักศึกษา — โปรเจกต์ CMS และบล็อก
เรียนรู้วิธีการทำงานของการสร้าง slug เมื่อสร้างบล็อกด้วย WordPress, Jekyll หรือ CMS แบบกำหนดเอง ใช้เครื่องมือนี้เปรียบเทียบ slug ที่สร้างด้วยมือของคุณกับการ implement อ้างอิง

กฎการสร้าง Slug และการจัดการอักขระ

การสร้าง slug ทำตามลำดับการแปลงที่คาดเดาได้ การเข้าใจแต่ละขั้นตอนช่วยให้คุณดีบักผลลัพธ์ที่ไม่คาดคิดหรือสร้างฟังก์ชัน slugify ของคุณเอง

  1. 1. การทำให้เป็นมาตรฐาน Unicode (NFD)
    แยกอักขระรวมออกเป็นอักขระหลัก + combining mark ตัวอย่างเช่น é (U+00E9) กลายเป็น e + combining acute accent (U+0301) ทำให้ diacritics สามารถลบออกได้ในขั้นตอนถัดไป
  2. 2. ถอด Diacritics
    ลบอักขระทั้งหมดในบล็อก Unicode Combining Diacritical Marks (U+0300–U+036F) หลังจากขั้นตอนนี้ café กลายเป็น cafe และ Ñ กลายเป็น N
  3. 3. ลบอักขระพิเศษ
    แทนที่อักขระใดๆ ที่ไม่ใช่ตัวอักษร ตัวเลข ช่องว่าง หรือยัติภังค์ด้วยช่องว่าง ซึ่งจะตัดเครื่องหมายวรรคตอน สัญลักษณ์ และอักขระที่ไม่มีเทียบเท่าใน ASCII
  4. 4. ตัดและยุบช่องว่าง
    ลบช่องว่างด้านหน้าและด้านหลัง จากนั้นยุบช่องว่าง ขีดล่าง หรือยัติภังค์ที่ซ้อนกันให้เหลือตัวคั่นเดี่ยวที่เลือก
  5. 5. ใช้ตัวพิมพ์และตัวคั่น
    แปลงเป็นตัวพิมพ์เล็ก (ตัวเลือก) และเชื่อมคำด้วยอักขระตัวคั่นที่เลือก: ยัติภังค์ (-), ขีดล่าง (_) หรือจุด (.)

ตารางอ้างอิงการแปลงอักขระ

ตารางด้านล่างแสดงวิธีการจัดการอักขระทั่วไประหว่างการสร้าง slug:

ป้อนเข้าผลลัพธ์กฎที่ใช้
Hello Worldhello-worldLowercase + space → hyphen
Café au Laitcafe-au-laitNFD normalization strips é → e
naïve résuménaive-resumeMultiple diacritics removed
Price: $9.99!price-9-99Symbols ($, !, :) removed
too many too-manyWhitespace trimmed and collapsed
one--two___threeone-two-threeMixed separators collapsed
Привет мирprivet-mirCyrillic (if transliteration) or removed
file_name.txtfile-name-txtDots and underscores replaced
React & Vuereact-vueAmpersand removed
2026-03-302026-03-30Digits and hyphens preserved

ตัวอย่างโค้ด

การสร้าง slug ในภาษาและเฟรมเวิร์กยอดนิยม แต่ละตัวอย่างจัดการการทำให้เป็นมาตรฐาน Unicode การลบ diacritics และการใส่ตัวคั่น

JavaScript
function slugify(text, separator = '-') {
  return text
    .normalize('NFD')                   // decompose accented chars
    .replace(/[\u0300-\u036f]/g, '')    // strip diacritics
    .toLowerCase()
    .replace(/[^\w\s-]/g, ' ')          // drop special chars
    .trim()
    .replace(/[\s_-]+/g, separator)     // collapse whitespace → separator

  // slugify('Café au Lait')      → "cafe-au-lait"
  // slugify('Hello World', '_')  → "hello_world"
}

// Node.js alternative using the `slugify` npm package:
// npm install slugify
// const slugify = require('slugify')
// slugify('Hello World', { lower: true, strict: true }) → "hello-world"
Python
import re
import unicodedata

def slugify(text: str, separator: str = '-') -> str:
    """Convert text to a URL-safe slug."""
    text = unicodedata.normalize('NFD', text)
    text = text.encode('ascii', 'ignore').decode('ascii')  # strip non-ASCII
    text = text.lower()
    text = re.sub(r'[^\w\s-]', ' ', text)
    text = text.strip()
    text = re.sub(r'[\s_-]+', separator, text)
    return text

# slugify('Café au Lait')      → "cafe-au-lait"
# slugify('Hello World', '_')  → "hello_world"

# Alternative: python-slugify (pip install python-slugify)
# from slugify import slugify
# slugify('Café au Lait')  → "cafe-au-lait"
Go
package main

import (
	"regexp"
	"strings"
	"unicode"

	"golang.org/x/text/unicode/norm"
	"golang.org/x/text/transform"
	"golang.org/x/text/runes"
)

func slugify(text string) string {
	// NFD normalize and strip diacritics
	t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
	result, _, _ := transform.String(t, text)

	result = strings.ToLower(result)
	re := regexp.MustCompile(`[^\w\s-]+`)
	result = re.ReplaceAllString(result, " ")
	result = strings.TrimSpace(result)
	re = regexp.MustCompile(`[\s_-]+`)
	result = re.ReplaceAllString(result, "-")
	return result
}

// slugify("Café au Lait") → "cafe-au-lait"
// slugify("Hello World")  → "hello-world"
PHP
function slugify(string $text, string $separator = '-'): string {
    // Transliterate non-ASCII characters
    $text = transliterator_transliterate(
        'Any-Latin; Latin-ASCII; Lower()', $text
    );
    // Remove anything that is not a word char, space, or hyphen
    $text = preg_replace('/[^\w\s-]/', ' ', $text);
    $text = trim($text);
    $text = preg_replace('/[\s_-]+/', $separator, $text);
    return $text;
}

// slugify('Café au Lait')      → "cafe-au-lait"
// slugify('Hello World', '_')  → "hello_world"

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

ความแตกต่างระหว่าง slug กับ URL path คืออะไร?
URL path คือส่วนเต็มหลังโดเมน เช่น /blog/2026/my-post ส่วน slug คือส่วนที่มนุษย์อ่านได้ซึ่งระบุทรัพยากรเฉพาะภายใน path นั้น โดยทั่วไปคือส่วนสุดท้าย: my-post Slug มักได้มาจากชื่อเรื่อง ในขณะที่ส่วนที่เหลือของ path สะท้อนโครงสร้าง routing ของเว็บไซต์
การสร้าง slug จัดการสคริปต์ที่ไม่ใช่ภาษาละติน เช่น ภาษาจีนหรืออาหรับอย่างไร?
ตัวสร้าง slug มาตรฐานที่ใช้การทำให้เป็นมาตรฐาน NFD และการถอด diacritics ไม่สามารถถอดเสียงสคริปต์ที่ไม่ใช่ภาษาละตินได้ อักขระเช่น อักษรจีนหรืออักษรอาหรับไม่มีเทียบเท่าใน ASCII ดังนั้นจึงถูกลบออกระหว่างขั้นตอนการทำความสะอาดอักขระพิเศษ ในการเก็บเนื้อหาที่ไม่ใช่ภาษาละตินใน slug คุณต้องใช้ไลบรารีถอดเสียงเช่น limax (JavaScript), python-slugify ที่ใช้ backend unidecode หรือตาราง mapping แบบกำหนดเอง
ควรใช้ยัติภังค์หรือขีดล่างใน URL slug?
Google ถือว่ายัติภังค์เป็นตัวคั่นคำ แต่ถือว่าขีดล่างเป็นตัวเชื่อมคำ slug my-first-post อ่านเป็นสามคำ (my, first, post) ในขณะที่ my_first_post อ่านเป็น token เดียว สำหรับวัตถุประสงค์ SEO ยัติภังค์คือตัวเลือกมาตรฐานสำหรับ URL slug ขีดล่างพบบ่อยในชื่อไฟล์ คอลัมน์ฐานข้อมูล และตัวระบุในโปรแกรมซึ่งทำหน้าที่เป็นตัวเชื่อมที่ปลอดภัยสำหรับตัวแปร
URL slug ควรยาวแค่ไหน?
Google แสดง URL ประมาณ 60 อักขระในผลการค้นหาก่อนที่จะตัดทอน slug ที่สั้นกว่าอ่านง่ายกว่า แชร์ง่ายกว่า และพิมพ์ง่ายกว่า ตั้งเป้า 3 ถึง 6 คำ ลบคำหยุด (the, a, an, and, or, in) เมื่อไม่เปลี่ยนความหมาย: how-to-build-nextjs-app ดีกว่า how-to-build-a-next-js-app-in-2026
การสร้าง slug เหมือนกับ URL encoding หรือไม่?
ไม่ URL encoding (percent-encoding) แทนที่อักขระที่ไม่ปลอดภัยด้วย triplet percent-sign เช่น %20 สำหรับช่องว่าง การสร้าง slug ลบหรือแทนที่อักขระที่ไม่ปลอดภัยทั้งหมด ทำให้ได้สตริงที่สะอาดโดยไม่มี encoding artifact slug ไม่มีเครื่องหมาย percent ช่องว่าง หรืออักขระพิเศษ URL encoding รักษาเนื้อหาต้นฉบับ ในขณะที่การสร้าง slug แปลงให้เป็นสิ่งใหม่
ชื่อสองชื่อที่ต่างกันสามารถสร้าง slug เดียวกันได้หรือไม่?
ใช่ ชื่อที่แตกต่างกันเฉพาะในเครื่องหมายวรรคตอน accent หรือตัวพิมพ์มักยุบเป็น slug เดียวกัน ตัวอย่างเช่น Résumé Tips และ Resume Tips ทั้งคู่สร้าง resume-tips ในบริบทของ CMS หรือฐานข้อมูล คุณต้องมีการตรวจสอบความไม่ซ้ำกันที่ต่อท้ายตัวเลข (resume-tips-2) เมื่อเกิดการชนกัน
ฉันจะสร้าง slug ใน WordPress หรือ Django ได้อย่างไร?
WordPress สร้าง slug โดยอัตโนมัติจากชื่อโพสต์โดยใช้ sanitize_title() คุณสามารถแก้ไข slug ในตัวแก้ไขโพสต์ Django มีฟังก์ชัน slugify() ใน django.utils.text ซึ่งจัดการ ASCII input ได้ดี สำหรับรองรับ Unicode ส่ง allow_unicode=True ทั้งสองแพลตฟอร์มเก็บ slug ในฐานข้อมูลควบคู่กับชื่อเต็ม

เครื่องมือที่เกี่ยวข้อง

เครื่องนับคำนับคำ ตัวอักษร ประโยค ย่อหน้า และประมาณเวลาอ่านตัวแปลง Caseแปลงข้อความระหว่าง uppercase, lowercase, title case, camelCase, snake_case และรูปแบบอื่นๆเครื่องมือสร้าง Lorem Ipsumสร้างข้อความตัวอย่าง Lorem Ipsum โดยกำหนดจำนวนย่อหน้าและคำได้ตัวเรียงบรรทัดเรียงบรรทัดตามตัวอักษร ตามความยาว ย้อนกลับ หรือสุ่มลำดับบรรทัดตัวลบบรรทัดซ้ำลบบรรทัดที่ซ้ำกันออกจากข้อความ เก็บไว้เฉพาะบรรทัดที่ไม่ซ้ำกันเปรียบเทียบข้อความเปรียบเทียบข้อความสองอย่างแบบเคียงข้างและเน้นความแตกต่างบรรทัดต่อบรรทัดตัวทดสอบ Regexทดสอบ regular expressions กับข้อความและดูผลการจับคู่ที่เน้นสีทั้งหมดดูตัวอย่าง Markdownดูตัวอย่างข้อความ Markdown ที่แสดงผลเป็น HTML แบบเรียลไทม์ตัวสร้างรหัสผ่านสร้างรหัสผ่านสุ่มที่แข็งแกร่งด้วยความยาวและชุดอักขระที่กำหนดเอง