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获取当前网页标题(title)的方法
Apr 03 Javascript
jQuery检测返回值的数据类型
Jul 13 Javascript
jquery+json实现数据二级联动的方法
Nov 28 Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
angularJs的ng-class切换class
Jun 23 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
Mar 01 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 Javascript
关于layui表单中按钮自动提交的解决方法
Sep 09 Javascript
JavaScript实现Tab选项卡切换
Feb 13 Javascript
Vue axios获取token临时令牌封装案例
Sep 11 Javascript
Javascript实现打鼓效果
Jan 29 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
js 删除数组的几种方法小结
2014/02/21 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
python编写简单爬虫资料汇总
2016/03/22 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
如何用python批量调整视频声音
2020/12/22 Python
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
中科创达面试题
2016/12/28 面试题
先进班级集体事迹材料
2014/01/30 职场文书
一年级小学生评语
2014/04/22 职场文书
社区矫正工作方案
2014/06/04 职场文书
学校端午节活动方案
2014/08/23 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
python中的None与NULL用法说明
2021/05/25 Python
python实现语音常用度量方法的代码详解
2021/05/25 Python
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫
Nginx HTTP跳转至HTTPS
2022/05/15 Servers