Avatar ·

تنسيق الأرقام إلى سلسلة نصية مع العملة في JavaScript: أفضل الطرق

مرحباً بالجميع! أنا مبتدئ في JavaScript وواجهت مشكلة: أحتاج إلى عرض أسعار المنتجات على الموقع كسلسلة نصية مع العملة، مثلاً "1 234.56 ₽" أو "$1,234.56". حاولت القيام بذلك يدوياً باستخدام Math.round والربط (concatenation)، لكن الكود أصبح فظيعاً، خاصة مع مراعاة العملات المختلفة والمواقع (locales). هذا مثال لما حاولت فعله: ```javascript function formatPrice(price) { const rubles = Math.floor(price); const kopecks = Math.round((price - rubles) * 100); return rubles + ' ₽ ' + (kopecks < 10 ? '0' : '') + kopecks; } ``` لكن هذا يعمل فقط مع الروبل، ومع الأرقام الكبيرة (مثلاً 1000000) نحصل على "1000000 ₽ 00"، بينما المطلوب "1 000 000.00 ₽". بالإضافة إلى ذلك، إذا كانت العملة دولاراً، فيجب وضع علامة الدولار قبل الرقم واستخدام النقطة للآلاف والفاصلة للسنات. أعلم أن JavaScript يحتوي على بعض الطرق المدمجة، لكنني لا أستطيع فهمها. جربت toFixed(2)، لكنه لا يضع مسافات بين الخانات. أرشدوني إلى كيفية التنسيق بشكل صحيح وجميل.