jQuery 中 String.format 的等效项

2022-08-30 01:19:05

我正在尝试将一些JavaScript代码从MicrosoftAjax移动到JQuery。我在MicrosoftAjax中使用了流行的.net方法的JavaScript等效物,例如String.format(),String.startsWith()等。在jQuery中是否有与它们等效的?


答案 1

ASP.NET AJAX 的源代码可供您参考,因此您可以选择它,并将要继续使用的部件包含在单独的 JS 文件中。或者,您可以将它们移植到jQuery。

这是格式函数...

String.format = function() {
  var s = arguments[0];
  for (var i = 0; i < arguments.length - 1; i++) {       
    var reg = new RegExp("\\{" + i + "\\}", "gm");             
    s = s.replace(reg, arguments[i + 1]);
  }

  return s;
}

这里是结束与和开始与原型函数...

String.prototype.endsWith = function (suffix) {
  return (this.substr(this.length - suffix.length) === suffix);
}

String.prototype.startsWith = function(prefix) {
  return (this.substr(0, prefix.length) === prefix);
}

答案 2

这是Josh发布的函数的更快/更简单(和原型)的变化:

String.prototype.format = String.prototype.f = function() {
    var s = this,
        i = arguments.length;

    while (i--) {
        s = s.replace(new RegExp('\\{' + i + '\\}', 'gm'), arguments[i]);
    }
    return s;
};

用法:

'Added {0} by {1} to your collection'.f(title, artist)
'Your balance is {0} USD'.f(77.7) 

我用得太多了,以至于我把它别名为 just ,但你也可以使用更冗长的 。例如:fformat'Hello {0}!'.format(name)