"```markdown
使用JavaScript扩展padLeft和padRight功能
在JavaScript中,字符串的格式化常常需要在字符串的左侧或右侧添加特定的字符,以达到对齐或填充的效果。我们可以通过扩展字符串原型的方法来实现padLeft和padRight功能。
实现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\"
代码解析
- String.prototype.padLeft:将
padLeft方法添加到字符串的原型上。 - 参数:
length:目标长度。char:用于填充的字符,默认为空格。
- 逻辑:
- 如果字符串长度已达到或超过目标长度,则返回原字符串。
- 否则,计算需要填充的字符数量,并使用
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\"
代码解析
- String.prototype.padRight:将
padRight方法添加到字符串的原型上。 - 参数:
length:目标长度。char:用于填充的字符,默认为空格。
- 逻辑:
- 如果字符串长度已达到或超过目标长度,则返回原字符串。
- 否则,计算需要填充的字符数量,并在字符串后面添加填充字符。
使用示例
const str1 = 'Hello';
const str2 = 'World!';
console.log(str1.padLeft(10, '*')); // 输出: \"*****Hello\"
console.log(str2.padRight(10, '*')); // 输出: \"World!****\"
注意事项
- 在使用
padLeft和padRight时,确保填充字符是一个单字符字符串。 - 这些方法会返回一个新的字符串,原字符串保持不变。
- 若目标长度小于或等于字符串长度,返回原字符串。
兼容性
这些扩展方法在现代浏览器中都能很好地工作,但在使用时应考虑到旧版本浏览器的兼容性。如果需要支持旧浏览器,可以使用Polyfill的方式实现。
通过以上方法,可以轻松扩展JavaScript字符串,以满足特定的格式化需求。