html自动补位的功能,js中位数不足自动补位扩展padLeft、padRight实现代码
方法一、自定义函数实现,不方便自定义调用
function FillZero(p) {
return new Array(3 - (p + '').length + 1).join('0') + p;
}
FillZero(6); //输出006
方法二、String方法一扩展(C#中PadLeft、PadRight)
String.prototype.PadLeft = function (len, charStr) {
var s = this + '';
return new Array(len - s.length + 1).join(charStr || '') + s;
}
String.prototype.PadRight = function (len, charStr) {
var s = this + '';
return s + new Array(len - s.length + 1).join(charStr || '');
}
var p = 6;
p.toString().PadLeft(3, '0'); //输出006
p.toString().PadRight(3, '0'); //输出600
方法三、原理同方法二
String.prototype.pad= function (pos,len,padStr) {
var padStrs = new Array(len).join(padStr,'');
return pos ? (padStrs + this.toString()).substr(0-len):(this.toString() + padStrs).substr(0,len);
}
String.prototype.lpad = function(len,padStr){
return this.pad(1,len,padStr);
}
String.prototype.rpad = function(len,padStr){
return this.pad(0,len,padStr);
}
String.prototype.padLeft = String.prototype.lpad;
String.prototype.padRight = String.prototype.rpad;
var str="6";
console.log(str.lpad(2,"0"));
console.log(str.padLeft(2,"0"));
代码四、
String.prototype.padLeft = function (padChar, width) {
var ret = this;
while (ret.length < width) {
if (ret.length + padChar.length < width) {
ret = padChar + ret;
}
else {
ret = padChar.substring(0, width - ret.length) + ret;
}
}
return ret;
};
String.prototype.padRight = function (padChar, width) {
var ret = this;
while (ret.length < width) {
if (ret.length + padChar.length < width) {
ret += padChar;
}
else {
ret += padChar.substring(0, width - ret.length);
}
}
return ret;
};
下面是其他网友的补充
javascript-leftpad方法
原由是微博上出的一则leftpad方法被吐槽的事。
原方法是通过循环挨个拼接字符串的方式,所以效率差了点(会产生N多string对象,导致对象回收慢)
类似
for(i=0;i
str=pad+str;
}
改进如下:
//cache
var padding1="00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
var padding2=" ";
function leftpad(str,length,useSpace){
var padding = padding1;
if(useSpace){
padding = padding2;
}
var cnt = length-str.length;
if(cnt<=0) return str;
if(cnt<=200) return padding.substring(0,cnt)+str;
str=padding+str;
return leftpad(str,length,ch);
}
思路:
1.减少string对象的生成,所以尽量减少字符串拼接的次数
2.降低时间复杂度
以上就是js中位数不足自动补位扩展padLeft、padRight实现代码的详细内容,更多关于js自动补位 padLeft、padRight的资料请关注脚本之家其它相关文章!
html自动补位的功能,js中位数不足自动补位扩展padLeft、padRight实现代码相关推荐
- php实现自动续费功能,如何关闭wps自动续费
微信中,打开"支付管理"界面,点击"自动扣费":然后找到"wps自动续费"项,点击进入:最后点击"关闭服务"即可.支付宝 ...
- 网页自动切换html css js,HTML页面自动清理js、css文件的缓存(自动添加版本号)_HTML/Xhtml_网页制作...
这篇文章主要介绍了HTML页面自动清理js.css文件的缓存(自动添加版本号),小编觉得挺不错的,现在分享给大家HTML源码,也给大家做个参考.对HTML感兴趣的小伙伴们一起跟随小编过来看看吧 在we ...
- 转:Eclipse自动补全功能轻松设置
Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件 2012-03-08 21:29:02| 分类: Java | 标签:eclipse 自动补全 设置 |举报|字号 订阅 下 ...
- Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件
本文介绍如何设置Eclipse代码自动补全功能.轻松实现输入任意字母均可出现代码补全提示框. Eclipse代码自动补全功能默认只包括 点"." ,即只有输入".& ...
- SI522A/SI523带低功耗自动寻卡功能的13.56MHz非接触式读写器芯片
SI522A低功耗模式下,读卡距离可达3~5cm.SI522A和SI523针对市场低功耗模式下极其不稳定的痛点,凭借着超低功耗.稳定的低功耗模式,及软硬件直接兼容MFRC522FM17550/FM17 ...
- 使用javascript实现安卓/鸿蒙手机的自动刷视频功能
随着国内短视频平台的日渐发展,越来越多人每天打开手机都会刷一会短视频平台,而且都会在短视频平台上,分享自己喜欢的视频,或者对自己喜欢的视频进行评论.如果每次刷视频或者评论都亲自操作的话,会非常的累,有 ...
- python自动批量发邮件脚本_批量群发,营销必备!Python代码实现自动发送邮件!...
在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使用 Python 封装发送邮件代码的. 一般发邮件方法SRE实战 互联网时代守护先 ...
- js脚本实现自动签到功能
js脚本实现自动签到功能 1.首先在谷歌浏览器安装Tampermonkey插件 2.写入脚本 // ==UserScript== // @name New Userscript // @namespa ...
- js php通讯录,基于aotu.js实现微信自动添加通讯录中的联系人功能
什么是Auto.JS? Auto.JS是Android平台上的JavaScript自动化工具. 它的本质是可执行自己编写的简易Javascript脚本的,尤其可以在开启"无障碍模式" ...
- 自动生成表格html,js实现自动生成表格功能的代码实例
js实现自动生成表格功能的代码实例 发布时间:2020-07-18 17:45:52 来源:亿速云 阅读:115 作者:小猪 这篇文章主要讲解了js实现自动生成表格功能的代码实例,内容清晰明了,对此有 ...
最新文章
- 【tensorboard】从tensorboard上看出模型是否存在过拟合
- echarts常用方法,legend状态支持两张图片切换(四)
- springboot自定义配置文件
- 【渝粤题库】国家开放大学2021春3962金融营销基础题目
- linux 使用碎碎记
- petri网学习笔记--stochastic petri net分类
- 计算机网络的结构之Internet结构
- Web开发之旅--使用Flask 实现REST架构的API
- linux 0.01内核分析与操作系统设计 百度网盘,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...
- 电脑数据恢复软件推荐10款
- 详解mysql执行计划
- Prefix-Tuning: Optimizing Continuous Prompts for Generation
- Objective-C类别(catagory)
- 哈工大ltp词性标注列表和ICTCLAS词性列表
- “七段数码管绘制”实例详解
- 自相关法基音提取的matlab程序,自相关函数法基音检测matlab程序
- 关于错误修改了/etc/profile文件(环境变量错误)
- 青龙面板——每日自动拿京豆
- PlotJuggler绘图工具无法打开rosbag文件解决方案
- 3-6CSS揭秘阅读笔记第一章:引言
热门文章
- 微信公众号网页OAuth2.0授权自动登录(Java版)
- 三种近场通信的特点,以及未来近场通信技术的应用场景的分析和预测
- 设置TextView滚动
- 放射技师计算机辅助诊断,基于CT影像的肺癌计算机辅助诊断关键技术研究
- adb 重命名_adb 常用命令-转载
- 1138: C语言合法标识符
- 【洛谷 P3191】 [HNOI2007]紧急疏散EVACUATE(二分答案,最大流)
- Android 10.0 webview版本升级的方法
- mysqldb 安装包 linux,Linux下Python MySQLdb模块安装过程及错误解决
- 用talib实现基于emv的简易量化投资策略