在JavaScript中,padLeft
和 padRight
这两个函数不是内置的,但你可以很容易地自定义它们。以下是如何使用 JavaScript 实现这两个函数的方法:
String.prototype.padLeft = function(totalWidth, paddingChar = ' ') {var padding = '';var originalLength = this.length;if (originalLength < totalWidth) {padding = Array(totalWidth - originalLength + 1).join(paddingChar);}return padding + this;
};String.prototype.padRight = function(totalWidth, paddingChar = ' ') {var padding = '';var originalLength = this.length;if (originalLength < totalWidth) {padding = Array(totalWidth - originalLength + 1).join(paddingChar);}return this + padding;
};
你可以像下面这样使用这两个函数:
var str = "hello";
console.log(str.padLeft(10, '*')); // 输出: *****hello
console.log(str.padRight(10, '*')); // 输出: hello*****
注意:虽然这种方式可以工作,但直接修改内置对象的原型(如 String.prototype
)通常并不推荐,因为这可能会导致与其他代码的冲突。在生产环境中,更安全的做法可能是将这些函数作为独立的函数,而不是扩展到 String.prototype
。例如:
function padLeft(str, totalWidth, paddingChar = ' ') {var padding = '';var originalLength = str.length;if (originalLength < totalWidth) {padding = Array(totalWidth - originalLength + 1).join(paddingChar);}return padding + str;
}function padRight(str, totalWidth, paddingChar = ' ') {var padding = '';var originalLength = str.length;if (originalLength < totalWidth) {padding = Array(totalWidth - originalLength + 1).join(paddingChar);}return str + padding;
}
使用方式如下:
var str = "hello";
console.log(padLeft(str, 10, '*')); // 输出: *****hello
console.log(padRight(str, 10, '*')); // 输出: hello*****