JavaScript में नंबर फॉर्मेटिंग: कॉमा और स्पेस जोड़ने का पूरा गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

JavaScript में नंबरों में कॉमा कैसे जोड़ें? पूरी गाइड

\n\n

क्या आपने कभी सोचा है कि 1000000 को पढ़ना मुश्किल क्यों लगता है, जबकि 1,000,000 तुरंत समझ में आ जाता है? इंसान की आंखें लंबी संख्याओं के लिए नहीं बनी हैं। थाउज़ेंड सेपरेटर (कॉमा, स्पेस या डॉट) सिर्फ सुंदरता के लिए नहीं, बल्कि उपयोगिता और जानकारी को समझने के लिए ज़रूरी हैं।

\n\n

अगर आप JavaScript में काम करते हैं और कीमतों, आंकड़ों, ID या किसी भी संख्यात्मक डेटा के साथ काम करते हैं, तो देर-सबेर यह सवाल आएगा: "JavaScript में नंबर में कॉमा या स्पेस कैसे जोड़ें?"। Stack Overflow पर इस सवाल के हज़ारों व्यूज़ हैं — यानी यह कई डेवलपर्स को परेशान करता है।

\n\n

इस लेख में हम सिर्फ तैयार कोड नहीं देंगे। हम तीन मुख्य तरीकों को समझाएंगे: आधुनिक built-in API से लेकर क्लासिक Regular Expressions तक। आप सीखेंगे कि JavaScript को पढ़ने योग्य संख्याओं की भाषा कैसे सिखाएं। चलिए शुरू करते हैं!

\n\n

एक साधारण संख्या क्यों एक समस्या है?

\n\n

सोचिए, आप अपनी वेबसाइट पर दिखा रहे हैं: कीमत: 1234567.89 रुपये। आंखें ठहर जाती हैं। यह कितना है? दस लाख? बारह लाख? अगर कॉमा लगा दें: 1,234,567.89 — तुरंत पता चलता है: यह दस लाख से थोड़ा ज़्यादा है।

\n\n

JavaScript में Number सिर्फ एक Number है। इसका कोई "built-in" डिस्प्ले फॉर्मेट नहीं है। हम जो देखते हैं, वह स्ट्रिंग में बदलने का नतीजा है। और यहाँ हम डेवलपर्स की भूमिका आती है।

\n\n

तरीका 1: toLocaleString() — सादगी का राजा

\n\n

सबसे आसान और आधुनिक तरीका है toLocaleString() मेथड का उपयोग करना। यह हर JavaScript नंबर में होता है और यूज़र की लोकल के अनुसार फॉर्मेट करता है।

\n\n
const number = 1234567.89;\nconst formatted = number.toLocaleString('hi-IN');\nconsole.log(formatted); // "12,34,567.89"\n
\n\n

ध्यान दें: भारतीय लोकल (hi-IN) के लिए थाउज़ेंड सेपरेटर कॉमा है, और दशमलव सेपरेटर डॉट है। अमेरिकी लोकल (en-US) के लिए भी कॉमा और डॉट ही होता है, लेकिन ग्रुपिंग अलग होती है:

\n\n
console.log(number.toLocaleString('en-US')); // "1,234,567.89"\n
\n\n

फायदे:

\n
    \n
  • बहुत कम कोड।
  • \n
  • लोकल स्टैंडर्ड को ध्यान में रखता है (कॉमा, स्पेस, डॉट)।
  • \n
  • सभी आधुनिक ब्राउज़र और Node.js में काम करता है।
  • \n
\n\n

नुकसान:

\n
    \n
  • फॉर्मेट पर कम नियंत्रण (बिना अतिरिक्त मैनिपुलेशन के स्पेस को कॉमा में नहीं बदल सकते)।
  • \n
  • पुराने ब्राउज़र (IE11) दूसरे आर्गुमेंट (locales) को सपोर्ट नहीं कर सकते।
  • \n
\n\n

तरीका 2: Intl.NumberFormat — लचीलापन और ताकत

\n\n

अगर आपको पूरा नियंत्रण चाहिए, तो Intl.NumberFormat ऑब्जेक्ट का उपयोग करें। यह वही मैकेनिज़्म है जो toLocaleString() में है, लेकिन अतिरिक्त सेटिंग्स के साथ।

\n\n
const formatter = new Intl.NumberFormat('hi-IN', {\n    style: 'decimal',\n    useGrouping: true, // थाउज़ेंड सेपरेटर चालू करता है\n    minimumFractionDigits: 2,\n    maximumFractionDigits: 2\n});\n\nconsole.log(formatter.format(1234567.8)); // "12,34,567.80"\n
\n\n

करेंसी चाहिए? आसान है:

\n\n
const currencyFormatter = new Intl.NumberFormat('hi-IN', {\n    style: 'currency',\n    currency: 'INR',\n    minimumFractionDigits: 0\n});\nconsole.log(currencyFormatter.format(1000000)); // "₹10,00,000"\n
\n\n

क्या मैन्युअली सेपरेटर बदल सकते हैं? कोई सीधा ऑप्शन नहीं है, लेकिन replace का उपयोग कर सकते हैं:

\n\n
let result = formatter.format(1234567.89);\nresult = result.replace(/,/g, ' '); // कॉमा को स्पेस से बदलें\nconsole.log(result); // "12 34 567.80"\n
\n\n

फायदे:

\n
    \n
  • अधिकतम लचीलापन (करेंसी, प्रतिशत, माप की इकाइयाँ)।
  • \n
  • परफॉरमेंस (एक बार बनाएं और बार-बार उपयोग करें)।
  • \n
\n\n

नुकसान:

\n
    \n
  • toLocaleString() से थोड़ा ज़्यादा कोड।
  • \n
  • फिर भी लोकल पर निर्भर करता है।
  • \n

ब्लॉग

पुस्तक अनुशंसाएँ