SORU
4 Mart 2009, ÇARŞAMBA


JavaScript, basit bir beşgen kullanmaktır/string eşdeğer.format

C/PHP iyi bir JavaScript eşdeğer C#/Java programcıları için printf() arıyorum String.Format() (IFormatProvider için .NET).

Benim temel gereksinimi şimdilik sayıları bin ayırıcı bir biçimidir, ama kombinasyonları (tarihleri dahil) çok işleyen bir şey iyi olurdu.

Microsoft Ajax kütüphane String.Format() bir sürüm sağlar, ancak bu çerçeve tüm yükü istemiyoruz farkındayım.

CEVAP
12 Ocak 2011, ÇARŞAMBA


Daha önce önerilen çözümler binası:

// First, checks if it isn't implemented yet.
if (!String.prototype.format) {
  String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{(\d )}/g, function(match, number) { 
      return typeof args[number] != 'undefined'
        ? args[number]
        : match
      ;
    });
  };
}

"{0} is dead, but {1} is alive! {0} {2}".format("ASP", "ASP.NET")

çıktılar

ASP öldü, ama ASP.NET yaşıyor! ASP {2}


Eğer değiştirmek için String'In prototipi: . isterseniz

if (!String.format) {
  String.format = function(format) {
    var args = Array.prototype.slice.call(arguments, 1);
    return format.replace(/{(\d )}/g, function(match, number) { 
      return typeof args[number] != 'undefined'
        ? args[number] 
        : match
      ;
    });
  };
}

Size çok daha tanıdık verir:

String.format('{0} is dead, but {1} is alive! {0} {2}', 'ASP', 'ASP.NET');

sonuç aynıydı:

ASP öldü, ama ASP.NET yaşıyor! ASP {2}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Apple

    Apple

    22 HAZİRAN 2005
  • Motor Trend Channel

    Motor Trend

    11 Mart 2006
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005