方法一、自定义函数实现,不方便自定义调用

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实现代码相关推荐

  1. php实现自动续费功能,如何关闭wps自动续费

    微信中,打开"支付管理"界面,点击"自动扣费":然后找到"wps自动续费"项,点击进入:最后点击"关闭服务"即可.支付宝 ...

  2. 网页自动切换html css js,HTML页面自动清理js、css文件的缓存(自动添加版本号)_HTML/Xhtml_网页制作...

    这篇文章主要介绍了HTML页面自动清理js.css文件的缓存(自动添加版本号),小编觉得挺不错的,现在分享给大家HTML源码,也给大家做个参考.对HTML感兴趣的小伙伴们一起跟随小编过来看看吧 在we ...

  3. 转:Eclipse自动补全功能轻松设置

    Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件 2012-03-08 21:29:02|  分类: Java |  标签:eclipse  自动补全  设置  |举报|字号 订阅 下 ...

  4. Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件

    本文介绍如何设置Eclipse代码自动补全功能.轻松实现输入任意字母均可出现代码补全提示框.   Eclipse代码自动补全功能默认只包括 点"."  ,即只有输入".& ...

  5. SI522A/SI523带低功耗自动寻卡功能的13.56MHz非接触式读写器芯片

    SI522A低功耗模式下,读卡距离可达3~5cm.SI522A和SI523针对市场低功耗模式下极其不稳定的痛点,凭借着超低功耗.稳定的低功耗模式,及软硬件直接兼容MFRC522FM17550/FM17 ...

  6. 使用javascript实现安卓/鸿蒙手机的自动刷视频功能

    随着国内短视频平台的日渐发展,越来越多人每天打开手机都会刷一会短视频平台,而且都会在短视频平台上,分享自己喜欢的视频,或者对自己喜欢的视频进行评论.如果每次刷视频或者评论都亲自操作的话,会非常的累,有 ...

  7. python自动批量发邮件脚本_批量群发,营销必备!Python代码实现自动发送邮件!...

    在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使用 Python 封装发送邮件代码的. 一般发邮件方法SRE实战 互联网时代守护先 ...

  8. js脚本实现自动签到功能

    js脚本实现自动签到功能 1.首先在谷歌浏览器安装Tampermonkey插件 2.写入脚本 // ==UserScript== // @name New Userscript // @namespa ...

  9. js php通讯录,基于aotu.js实现微信自动添加通讯录中的联系人功能

    什么是Auto.JS? Auto.JS是Android平台上的JavaScript自动化工具. 它的本质是可执行自己编写的简易Javascript脚本的,尤其可以在开启"无障碍模式" ...

  10. 自动生成表格html,js实现自动生成表格功能的代码实例

    js实现自动生成表格功能的代码实例 发布时间:2020-07-18 17:45:52 来源:亿速云 阅读:115 作者:小猪 这篇文章主要讲解了js实现自动生成表格功能的代码实例,内容清晰明了,对此有 ...

最新文章

  1. 【tensorboard】从tensorboard上看出模型是否存在过拟合
  2. echarts常用方法,legend状态支持两张图片切换(四)
  3. springboot自定义配置文件
  4. 【渝粤题库】国家开放大学2021春3962金融营销基础题目
  5. linux 使用碎碎记
  6. petri网学习笔记--stochastic petri net分类
  7. 计算机网络的结构之Internet结构
  8. Web开发之旅--使用Flask 实现REST架构的API
  9. linux 0.01内核分析与操作系统设计 百度网盘,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...
  10. 电脑数据恢复软件推荐10款
  11. 详解mysql执行计划
  12. Prefix-Tuning: Optimizing Continuous Prompts for Generation
  13. Objective-C类别(catagory)
  14. 哈工大ltp词性标注列表和ICTCLAS词性列表
  15. “七段数码管绘制”实例详解
  16. 自相关法基音提取的matlab程序,自相关函数法基音检测matlab程序
  17. 关于错误修改了/etc/profile文件(环境变量错误)
  18. 青龙面板——每日自动拿京豆
  19. PlotJuggler绘图工具无法打开rosbag文件解决方案
  20. 3-6CSS揭秘阅读笔记第一章:引言

热门文章

  1. 微信公众号网页OAuth2.0授权自动登录(Java版)
  2. 三种近场通信的特点,以及未来近场通信技术的应用场景的分析和预测
  3. 设置TextView滚动
  4. 放射技师计算机辅助诊断,基于CT影像的肺癌计算机辅助诊断关键技术研究
  5. adb 重命名_adb 常用命令-转载
  6. 1138: C语言合法标识符
  7. 【洛谷 P3191】 [HNOI2007]紧急疏散EVACUATE(二分答案,最大流)
  8. Android 10.0 webview版本升级的方法
  9. mysqldb 安装包 linux,Linux下Python MySQLdb模块安装过程及错误解决
  10. 用talib实现基于emv的简易量化投资策略