टेक्स्ट स्लगिफाई (URL)

टेक्स्ट को URL-अनुकूल स्लग में बदलें, जिसमें छोटे अक्षर, अलगकर्ता और कस्टम स्टॉप शब्द हटाने का समर्थन शामिल है।

पैरामीटर और इनपुट

सुझाव: - या _ का उपयोग करें, 1~3 वर्ण की लंबाई

परिणाम

स्लगिफाई क्यों जरूरी है?

🔍 SEO अनुकूलन

URL में कीवर्ड सर्च इंजन को पेज की सामग्री समझने में मदद करते हैं और रैंकिंग बढ़ाते हैं। उदाहरण के लिए, example.com/blog/how-to-learn-javascript, example.com/blog/123 की तुलना में अधिक अनुकूल है।

👁️ पठनीयता और साझाकरण

उपयोगकर्ता URL देखकर समझ सकते हैं कि सामग्री क्या है, सोशल मीडिया पर साझा करने में आसान, याद रखने और हाथ से टाइप करने में आसान।

💻 सिस्टम संगतता

विशेष वर्णों के कारण फ़ाइल नाम/URL में त्रुटियों से बचें, क्रॉस-प्लेटफ़ॉर्म संगतता (Windows/Linux/Mac), और एन्कोडिंग समस्याओं से बचें।

🗄️ डेटाबेस-अनुकूल

अद्वितीय पहचानकर्ता (जैसे उपयोगकर्ता नाम, टैग) के रूप में उपयोग करें, SQL इंजेक्शन जोखिम से बचें, और इंडेक्सिंग और क्वेरी के लिए आसान बनाएँ।

स्लगिफाई क्या है?

स्लग एक ऐसा संक्षिप्त वाक्यांश है जिसे टेक्स्ट को मानकीकृत करके URL/फ़ाइल नाम/पहचानकर्ता के रूप में उपयोग किया जाता है। सामान्य संसाधन शामिल हैं: केस समानीकरण, विराम चिह्न हटाना, और शब्दों को अलगकर्ता से जोड़ना।

  • ASCII प्राथमिकता: डायैरेक्टिक्स और चिह्नों को हटाएँ, केवल अक्षर-संख्या और रिक्त स्थान बचाएँ
  • Unicode संगतता: अधिकांश भाषाओं के वर्णों को NFKD मानकीकरण के बाद संसाधित करें
  • URL-अनुकूल: परिणाम केवल अक्षर/संख्या और अलगकर्ता शामिल होते हैं, जिसे सीधे पथ के लिए उपयोग किया जा सकता है

उपयोग के मामले

ब्लॉग पोस्ट URL

जावास्क्रिप्ट कैसे सीखें?

how-to-learn-javascript

फ़ाइल नामकरण

उत्पाद आवश्यकता दस्तावेज़ v2.0.docx

product-requirements-v2-0.docx

डेटाबेस अनिवार्य पहचानकर्ता

उपयोगकर्ता-ज़ंग सान

user-zhang-san

अक्सर पूछे जाने वाले प्रश्न

Q: चीनी वर्णों का क्या होगा?

A: डिफ़ॉल्ट रूप से, उच्चारण चिह्न हटा दिए जाते हैं और पिनयिन अक्षर बरकरार रखे जाते हैं। शुद्ध चीनी पाठ खाली हो सकता है; सुझाव है कि आप पहले पिनयिन में रूपांतरित करें, फिर slugify करें, या चीनी पिनयिन रूपांतरण उपकरण का उपयोग करें।

Q: मेरा परिणाम खाली क्यों है?

A: संभवतः आपका इनपुट केवल विराम चिह्न/प्रतीक/स्थान है, या रोके गए शब्द फ़िल्टरिंग सक्षम होने के बाद कोई शब्द शेष नहीं रहा। रोके गए शब्द विकल्प को बंद करने या इनपुट सामग्री को समायोजित करने का प्रयास करें।

Q: अलगकर्ता के रूप में - या _ का उपयोग करूं?

A: SEO के लिए - (हाइफ़न) का उपयोग करना अनुशंसित है, क्योंकि Google इसे एक स्थान के रूप में मानता है; _ (अंडरस्कोर) को एक जुड़ने वाले चिह्न के रूप में माना जाता है, जो शब्दों को अलग करने में बाधा डालता है। फ़ाइल नामों के लिए कोई भी विकल्प चुना जा सकता है।

Q: Slug की लंबाई की कोई सीमा है?

A: तकनीकी रूप से कोई सीमा नहीं है, लेकिन URL प्रदर्शन और SEO के लिए 50 वर्णों से कम रखना अनुशंसित है। अत्यधिक लंबे slug को सर्च इंजन अक्सर काट देते हैं।

उत्तम अभ्यास

अनुशंसित तरीके

  • संक्षिप्त रखें (सुझाव: < 50 वर्ण)
  • विशेष वर्णों से बचें, केवल अक्षर/अंक/अलगकर्ता का उपयोग करें
  • मामूली/बड़े अक्षर संवेदनशीलता से बचने के लिए छोटे अक्षर में बदलें
  • अर्थघनत्व बढ़ाने के लिए रोके गए शब्द हटाएं

बचने योग्य बातें

  • संवेदनशील जानकारी (जैसे ID, ईमेल, पासवर्ड) शामिल न करें
  • विशेष वर्णों (जैसे @#$%^&*) का उपयोग न करें
  • स्थान या लगातार अलगकर्ता न छोड़ें
  • एक ही शब्द को दोहराएं नहीं

तकनीकी विवरण

यूनिकोड सामान्यीकरण:

NFKD विघटन + संयोजित उच्चारण चिह्न (\p{M}) हटाने का उपयोग करें, जिससे Café को Cafe में बदल दिया जाता है। अधिकांश लैटिन भाषा वर्णमाला को समर्थन देता है।

रोके गए शब्द सूची:

अंग्रेजी आम शब्दों (a/an/the/and/or/of/to/in/on/for/at/by/with) पर आधारित, जिसे कस्टमाइज़ किया जा सकता है। चीनी रोके गए शब्दों के लिए अतिरिक्त संसाधन की आवश्यकता होती है।

ब्राउज़र संगतता:

ES6+ और यूनिकोड नियमित अभिव्यक्तियों (\p{...}) का समर्थन आवश्यक है। आधुनिक ब्राउज़र (Chrome 64+, Firefox 78+, Safari 11.1+) इसे समर्थन करते हैं।

प्रोग्रामिंग भाषा का उपयोग करके Slug कैसे बनाएं?

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("^-+|-+$", "");
}