使用js扩展padLeft、padRight的功能
在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*****