Pengubah Teks menjadi Slug (URL)
Alat pengubah teks ke slug profesional yang menormalkan teks menjadi slug mesra URL, menyokong penukaran huruf kecil, pemisah tersuai, dan pembuangan kata henti Inggeris. Menggunakan penormalan Unicode untuk mengendalikan kebanyakan aksara bahasa, memastikan slug yang dijana mematuhi amalan terbaik SEO. Sesuai untuk URL catatan blog, penamaan fail, pengenal pasti pangkalan data, dan senario lain. Diproses sepenuhnya secara tempatan untuk melindungi privasi anda—tiada pendaftaran diperlukan. Menyediakan panduan penggunaan terperinci dan cadangan amalan terbaik untuk membantu anda menjana slug berkualiti tinggi.
Mengapa Gunakan Slugify?
🔍 Pengoptimuman SEO
Kata kunci dalam URL membantu enjin carian memahami kandungan halaman dan meningkatkan kedudukan. Contohnya, example.com/blog/how-to-learn-javascript lebih berkesan berbanding example.com/blog/123.
👁️ Kebolehbacaan & Perkongsian
Pengguna boleh serta-merta memahami kandungan daripada URL. Slug lebih mudah dikongsi di media sosial serta lebih mudah diingat atau ditaip secara manual.
💻 Keserasian Sistem
Elakkan ralat yang disebabkan oleh aksara khas dalam nama fail atau URL. Memastikan keserasian rentas platform (Windows/Linux/macOS) dan mencegah isu pengekodan.
🗄️ Mesra Pangkalan Data
Gunakan sebagai pengenal unik (cth., nama pengguna, tag) untuk mengurangkan risiko suntikan SQL dan meningkatkan prestasi indeksasi serta pertanyaan.
Apa itu Slugify?
Slug ialah versi pendek dan piawai bagi sesuatu teks yang digunakan sebagai URL, nama fail, atau pengenal pasti. Pemprosesan biasa termasuk menyeragamkan kes huruf, membuang tanda baca, dan menggabungkan perkataan dengan pemisah.
- Keutamaan ASCII: Buang aksen dan simbol, kekalkan hanya aksara alfanumerik dan ruang
- Serasi Unicode: Normalisasikan kebanyakan aksara bahasa menggunakan NFKD sebelum pemprosesan
- Mesra URL: Output hanya mengandungi huruf, nombor, dan pemisah—sedia untuk digunakan terus dalam laluan
Soalan Lazim
Q: Bagaimana aksara Cina dikendalikan?
A: Secara lalai, tanda diakritik dibuang dan huruf pinyin dikekalkan. Teks Cina tulen mungkin menjadi kosong; disarankan untuk menukar ke pinyin secara manual sebelum menjadikannya slug, atau gunakan alat penukaran pinyin Cina.
Q: Mengapa hasil saya kosong?
A: Input anda mungkin terdiri sepenuhnya daripada tanda baca, simbol, atau ruang, atau semua perkataan telah dibuang oleh penapisan kata henti. Cuba matikan pilihan kata henti atau laraskan input anda.
Q: Adakah saya perlu menggunakan - atau _ sebagai pemisah?
A: Untuk SEO, gunakan - (tanda hubung), kerana Google melayaninya sebagai ruang; _ (garis bawah) dilayan sebagai simbol penyambungan, yang menghalang pemisahan perkataan. Untuk nama fail, kedua-duanya diterima pakai.
Q: Adakah had panjang untuk slug?
A: Tiada had teknikal, tetapi disarankan untuk mengekalkan slug di bawah 50 aksara bagi paparan URL dan SEO yang lebih baik. Slug yang terlalu panjang mungkin dipotong oleh enjin carian.
Amalan Terbaik
Amalan Disyorkan
- ✓ Kekalkan pendek (disyorkan < 50 aksara)
- ✓ Elakkan aksara khas; gunakan hanya huruf, nombor, dan pemisah
- ✓ Gunakan huruf kecil untuk mengelakkan isu sensitiviti kes
- ✓ Buang kata henti untuk meningkatkan ketumpatan semantik
Elakkan Amalan Ini
- ✗ Jangan sertakan maklumat sensitif (cth., ID, e-mel, kata laluan)
- ✗ Jangan gunakan aksara khas (cth., @#$%^&*)
- ✗ Jangan kekalkan ruang atau pemisah berturutan
- ✗ Jangan ulang perkataan yang sama
Butiran Teknikal
Menggunakan penguraian NFKD + pembuangan diakritik gabungan (\p{M}), menukar Café kepada Cafe. Menyokong kebanyakan aksara berasaskan Latin.
Berdasarkan perkataan Inggeris biasa (a/an/the/and/or/of/to/in/on/for/at/by/with); boleh disesuaikan. Kata henti Cina memerlukan penanganan berasingan.
Memerlukan sokongan ES6+ dan regex Unicode (\p{...}). Disokong dalam pelayar moden: Chrome 64+, Firefox 78+, Safari 11.1+.
Bagaimana Menjana Slug Melalui Bahasa Pengaturcaraan?
JavaScript
function slugify(text) {
return text
.toLowerCase()
.normalize("NFKD")
.replace(/[\u0300-\u036f]/g, "")
.replace(/[^\w\s-]/g, "")
.trim()
.replace(/[\s_-]+/g, "-")
.replace(/^-+|-+$/g, "");
}
PHP
function slugify($text) {
$text = mb_strtolower($text);
$text = iconv("UTF-8", "ASCII//TRANSLIT", $text);
$text = preg_replace("/[^\w\s-]/", "", $text);
$text = preg_replace("/[\s_-]+/", "-", $text);
return trim($text, "-");
}
Python
import re
import unicodedata
def slugify(text):
text = text.lower()
text = unicodedata.normalize("NFKD", text)
text = text.encode("ascii", "ignore").decode("ascii")
text = re.sub(r"[^\w\s-]", "", text)
text = re.sub(r"[\s_-]+", "-", text)
return text.strip("-")
Go
import (
"regexp"
"strings"
"golang.org/x/text/unicode/norm"
)
func Slugify(text string) string {
text = strings.ToLower(text)
text = norm.NFKD.String(text)
re := regexp.MustCompile(`[^\w\s-]`)
text = re.ReplaceAllString(text, "")
re = regexp.MustCompile(`[\s_-]+`)
text = re.ReplaceAllString(text, "-")
return strings.Trim(text, "-")
}
Ruby
require "unicode"
def slugify(text)
text = text.downcase
text = Unicode.nfkd(text).gsub(/[^\x00-\x7F]/, "")
text = text.gsub(/[^\w\s-]/, "")
text = text.gsub(/[\s_-]+/, "-")
text.strip.gsub(/^-+|-+$/, "")
end
Java
import java.text.Normalizer;
public static String slugify(String text) {
text = text.toLowerCase();
text = Normalizer.normalize(text, Normalizer.Form.NFKD);
text = text.replaceAll("[^\\w\\s-]", "");
text = text.replaceAll("[\\s_-]+", "-");
return text.replaceAll("^-+|-+$", "");
}