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 相关文章推荐
通过JAVAScript实现页面自适应
Jan 19 Javascript
jQuery对象和DOM对象相互转化
Apr 24 Javascript
Notify - 基于jquery的消息通知插件
Oct 18 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
Apr 24 Javascript
javascript从右边截取指定字符串的三种实现方法
Nov 29 Javascript
javascript面向对象之访问对象属性的两种方式分析
Jan 13 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 Javascript
Vue.js自定义事件的表单输入组件方法
Mar 08 Javascript
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
在vue中使用echars实现上浮与下钻效果
Nov 08 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
Nov 12 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
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
Django权限设置及验证方式
2020/05/13 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
财务会计专业毕业生自荐信
2013/10/02 职场文书
营业经理岗位职责
2013/11/10 职场文书
部队学习十八大感言
2014/01/11 职场文书
幼儿园门卫制度
2014/01/29 职场文书
求职信标题怎么写
2014/05/26 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
工作收入住址证明
2014/10/28 职场文书
初中家长评语和期望
2014/12/26 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
56句经典英文座右铭
2019/08/09 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
如何利用React实现图片识别App
2022/02/18 Javascript