使用js扩展padLeft、padRight的功能

98 阅读2分钟

"```markdown

使用JavaScript扩展padLeft和padRight功能

在JavaScript中,字符串的格式化常常需要在字符串的左侧或右侧添加特定的字符,以达到对齐或填充的效果。我们可以通过扩展字符串原型的方法来实现padLeftpadRight功能。

实现padLeft

padLeft功能可以在字符串左侧添加指定的字符,直到字符串达到给定的长度。以下是实现代码:

String.prototype.padLeft = function(length, char = ' ') {
    const str = this.toString(); // 确保是字符串
    return str.length >= length ? str : char.repeat(length - str.length) + str;
};

// 示例用法
const paddedLeft = '123'.padLeft(5, '0');
console.log(paddedLeft); // 输出: \"00123\"

代码解析

  1. String.prototype.padLeft:将padLeft方法添加到字符串的原型上。
  2. 参数
    • length:目标长度。
    • char:用于填充的字符,默认为空格。
  3. 逻辑
    • 如果字符串长度已达到或超过目标长度,则返回原字符串。
    • 否则,计算需要填充的字符数量,并使用repeat方法生成填充字符串。

实现padRight

padRight功能可以在字符串右侧添加指定的字符,直到字符串达到给定的长度。以下是实现代码:

String.prototype.padRight = function(length, char = ' ') {
    const str = this.toString(); // 确保是字符串
    return str.length >= length ? str : str + char.repeat(length - str.length);
};

// 示例用法
const paddedRight = '123'.padRight(5, '0');
console.log(paddedRight); // 输出: \"12300\"

代码解析

  1. String.prototype.padRight:将padRight方法添加到字符串的原型上。
  2. 参数
    • length:目标长度。
    • char:用于填充的字符,默认为空格。
  3. 逻辑
    • 如果字符串长度已达到或超过目标长度,则返回原字符串。
    • 否则,计算需要填充的字符数量,并在字符串后面添加填充字符。

使用示例

const str1 = 'Hello';
const str2 = 'World!';

console.log(str1.padLeft(10, '*')); // 输出: \"*****Hello\"
console.log(str2.padRight(10, '*')); // 输出: \"World!****\"

注意事项

  • 在使用padLeftpadRight时,确保填充字符是一个单字符字符串。
  • 这些方法会返回一个新的字符串,原字符串保持不变。
  • 若目标长度小于或等于字符串长度,返回原字符串。

兼容性

这些扩展方法在现代浏览器中都能很好地工作,但在使用时应考虑到旧版本浏览器的兼容性。如果需要支持旧浏览器,可以使用Polyfill的方式实现。

通过以上方法,可以轻松扩展JavaScript字符串,以满足特定的格式化需求。