首页 > web前端 > js教程 > 如何在 JavaScript 中高效地填充字符串?

如何在 JavaScript 中高效地填充字符串?

DDD
发布: 2024-11-23 12:31:17
原创
866 人浏览过

How Can I Efficiently Pad Strings in JavaScript?

用于字符串填充的 JavaScript 函数

简介

填充字符串涉及到在开头或结尾添加字符以达到所需的长度。这在各种场景中都很有用,例如表格对齐或格式化数字。本文探讨了一种有助于字符串填充的 JavaScript 函数。

ES8 之前的解决方案

在 ECMAScript 8 (ES8) 之前,开发人员采用各种方法进行字符串填充。一种简单的方法是将字符串与预定义的填充值连接起来,然后对结果进行切片以获得所需的长度:

var n = 123;

String("00000" + n).slice(-5); // returns 00123
("00000" + n).slice(-5); // returns 00123
("     " + n).slice(-5); // returns "  123" (with two spaces)
登录后复制

另一种解决方案使用 paddingLeft 方法扩展字符串对象:

String.prototype.paddingLeft = function (paddingValue) {
   return String(paddingValue + this).slice(-paddingValue.length);
};
登录后复制

此方法可以按如下方式使用:

function getFormattedTime(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();

  hours = hours.toString().paddingLeft("00");
  minutes = minutes.toString().paddingLeft("00");

  return "{0}:{1}".format(hours, minutes);
};

String.prototype.format = function () {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function (match, number) {
        return typeof args[number] != 'undefined' ? args[number] : match;
    });
};
登录后复制

ES8 和Beyond

ES8引入了String.padStart方法,它简化了字符串填充:

"Jonas".padStart(10); // Default pad string is a space
"42".padStart(6, "0"); // Pad with "0"
"*".padStart(8, "-/|\"); // produces '-/|\-/|*'
登录后复制

如果String.padStart不可用,可以使用polyfill来添加它。下面的polyfill扩展了字符串对象:

String.prototype.padLeft = function (desiredLength) {
  var padString = " ";
  if (arguments.length > 1) {
    padString = arguments[1];
  }

  var padLength = desiredLength - this.length;
  if (padLength >= 0) {
    return padString.repeat(Math.ceil(padLength / padString.length)).slice(0, padLength) + this;
  } else {
    return this;
  }
};
登录后复制

以上是如何在 JavaScript 中高效地填充字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板