分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

JS字符串补全方法padStart()和padEnd()

发布时间:2023-09-06 02:06责任编辑:赖小花关键词:暂无标签

背景:

var t = new Date().getMonth() + 1;// t ===> 7,没有0,怎么展示成下面的样子?// 2018-07-23

解决上述问题的一个思路:

// 补0函数function(num) { ???return +num < 10 ? '0' + num : num;}

padStart(len, str)

  • 根据给定长度自动在字符串的前面补充想补充的字符串(只返回修改后的字符串,不修改原字符串)
    • len 给定的长度,转换后
    • str 想补充的字符串

栗子:

var a = '7';a.padStart(2, '0');// a ===> 07
var b = 'hi';b.padStart(10, 'hello');// b ===> hellohelhi, 重复补充
var c = 'hi';c.padStart(10, '');// c ===> hi
var d = 'a';d.padStart(5, false);// falsad.padStart(5, []);// ad.padStart(5, {});// [objad.padStart(5, null);// nullad.padStart(5, function(){});// funca

实现的思路:

var a = '22'a.padStart(len, str)

伪代码:

var res = ''if (str.toString) { ???res = str.toString();}else { ???res = Object.prototype.toString.call(str);}return res;
res.repeat(len/2+1).slice(0, len - a.length) + a

padEnd()
和padStart参数一样,只是把想加的字符串加到后头。

var a = 'aaa'.padEnd(15, {});// aaa[object Obje

兼容性:

目前来看用于前端需要兼容,请看:string.polyfill.js

if (!String.prototype.padStart) { ???String.prototype.padStart = function padStart(targetLength,padString) { ???????targetLength = targetLength>>0; //truncate if number or convert non-number to 0; ???????padString = String((typeof padString !== 'undefined' ? padString : ' ')); ???????if (this.length > targetLength) { ???????????return String(this); ???????} ???????else { ???????????targetLength = targetLength-this.length; ???????????if (targetLength > padString.length) { ???????????????padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed ???????????} ???????????return padString.slice(0,targetLength) + String(this); ???????} ???};}

node.js支持到版本8

JS字符串补全方法padStart()和padEnd()

原文地址:https://www.cnblogs.com/hongrunhui/p/9370954.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved