JS字符串补全方法padStart()和padEnd()
2024-08-31 19:16:48
背景:
var t = new Date().getMonth() + 1;
// t ===> 7,没有0,怎么展示成下面的样子?
// 2018-07-23
解决上述问题的一个思路:
// 补0函数
function(num) {
return +num < 10 ? '0' + num : num;
}
padStart(len, str)
- 根据给定长度自动在字符串的前面补充想补充的字符串(只返回修改后的字符串,不修改原字符串)
- len 给定的长度,转换后
- str 想补充的字符串
栗子:
var a = '7';
a.padStart(2, '0');
// a ===> 07
var b = 'hi';
b.padStart(10, 'hello');
// b ===> hellohelhi, 重复补充
var c = 'hi';
c.padStart(10, '');
// c ===> hi
var d = 'a';
d.padStart(5, false);
// falsa
d.padStart(5, []);
// a
d.padStart(5, {});
// [obja
d.padStart(5, null);
// nulla
d.padStart(5, function(){});
// funca
实现的思路:
var a = '22'
a.padStart(len, str)
伪代码:
var res = ''
if (str.toString) {
res = str.toString();
}
else {
res = Object.prototype.toString.call(str);
}
return res;
res.repeat(len/2+1).slice(0, len - a.length) + a
padEnd()
和padStart参数一样,只是把想加的字符串加到后头。
var a = 'aaa'.padEnd(15, {});
// aaa[object Obje
兼容性:
目前来看用于前端需要兼容,请看:string.polyfill.js
if (!String.prototype.padStart) {
String.prototype.padStart = function padStart(targetLength,padString) {
targetLength = targetLength>>0; //truncate if number or convert non-number to 0;
padString = String((typeof padString !== 'undefined' ? padString : ' '));
if (this.length > targetLength) {
return String(this);
}
else {
targetLength = targetLength-this.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
}
return padString.slice(0,targetLength) + String(this);
}
};
}
node.js支持到版本8
最新文章
- .技术参数图用pillow自动处理
- split分割大文件--包含通过awk按规则分割文件到对应子文件
- 系统升级日记(3)- 升级SharePoint解决方案和Infopath
- RobotFrameWork WebService Soap接口测试 (一)
- JS实现复选框全选全不选以及子复选框带动全选框的选中
- sqlsever 关于索引
- The Tangled Web (Web之困)第四章 摘要
- Linux之read用法
- opencv 2.46与visual studio 2012 配置方法
- 转:.NET中使用Redis (二)
- Web学习之自定义标签
- android user如何打开一个版本号root才干
- (十九)TableView的点击监听和数据刷新(Alert的多种样式) -tag传值的技巧
- 开发工具IntelliJ IDEA的安装步骤及首次启动和创建项目
- 【开发工具之eclipse】8、The word is not correctly spelled。强迫症看着很难受
- git download error processing
- Oracle RAC时间同步(NTP/CTSS)
- angularjs探秘<;四>; 双向数据绑定
- php的三种CLI常量:STDIN,STDOUT,STDERR
- STM32 Timer : Base Timer, Input Capture, PWM, Output Compare