js中位数不足自动补位扩展padLeft、padRight实现代码


Posted in Javascript onApril 06, 2020

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

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

方法三、原理同方法二

<script type="text/javascript">
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"));
</script>

代码四、

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<cnt;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的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
5 cool javascript apps
Mar 24 Javascript
Js如何判断客户端是PC还是手持设备简单分析
Nov 22 Javascript
对frameset、frame、iframe的js操作示例代码
Aug 16 Javascript
JavaScript判断密码强度(自写代码)
Sep 06 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Sep 04 Javascript
一个简单不报错的summernote 图片上传案例
Jul 11 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
May 13 Javascript
浅谈redux, koa, express 中间件实现对比解析
May 23 Javascript
JavaScript工具库之Lodash详解
Jun 15 Javascript
使用JavaScript计算前一天和后一天的思路详解
Dec 20 Javascript
jquery实现两个div中的元素相互拖动的方法分析
Apr 05 #jQuery
js实现登录时记住密码的方法分析
Apr 05 #Javascript
Vue插件之滑动验证码用法详解
Apr 05 #Javascript
解决node终端下运行js文件不支持ES6语法
Apr 04 #Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 #jQuery
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
Apr 04 #jQuery
vue中使用v-for时为什么不能用index作为key
Apr 04 #Javascript
You might like
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
Angular之toDoList的实现代码示例
2017/12/02 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
在Python的Django框架中编写编译函数
2015/07/20 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
python连接数据库的方法
2017/10/19 Python
python如何将图片转换为字符图片
2020/08/19 Python
numpy.array 操作使用简单总结
2019/11/08 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
人力资源管理专业应届生求职信
2013/09/28 职场文书
事业单位接收函
2014/01/10 职场文书
治超工作实施方案
2014/05/04 职场文书
奉献演讲稿范文
2014/05/21 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript