详解JavaScript中的padStart()和padEnd()方法


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

10

'SAM'.padStart(8, 100);    // '10010SAM'

 

'SAM'.padStart(8, true);   // 'truetSAM'

'SAM'.padStart(8, false);  // 'falseSAM'

 

'SAM'.padStart(5, ['']);   // 'SAM'

'SAM'.padStart(5, ['hi']); // 'hiSAM'

 

'SAM'.padStart(18, {});         // '[object Object]SAM'

'SAM'.padStart(18, {hi: 'hi'}); // '[object Object]SAM'

处理 undefined

这里有一个有趣的例子,如果你强制把 undefined 转成一个字符串,得到一个TypeError:

1

undefined.toString(); // TypeError: Cannot read property 'toString' of undefined

但当我们把undefined作为第二个参数传入padStart,会得到这个:

1

2

'SAM'.padStart(10, undefined);

// '       SAM'

所以上面说的 padString 参数会使用 toString 强制转成字符串使用,到这里感觉又不对了 ??。我们先来看下规范:

ECMAScript 规范 :如果填充的字符串是 undefined,该填充的字符串就会被规制成空格( 0x0020)。

好吧,我们更正一下, 除了undefined,否则传递的所有其他数据类型都将使用toString强制转成字符串。

如果 padString 超过 maxLength 怎么办?

如果 maxLength 数值小于等于当前字符串的长度,则返回当前字符串本身。

1

2

'hi'.padEnd(2, 'SAM');

// 'hi'

如果 maxLength 小于 padString 的长度,则 padString 会被截断。

1

2

'hi'.padEnd(7, 'SAMANTHA');

// 'hiSAMAN'

padStart/padEnd vs padLeft/padRight

trim 方法具有的别名。

  • trimLefttrimStart的别名
  • trimRighttrimStart的别名

但是对于字符串填充方法,没有别名。 因此,请勿使用padLeftpadRight,它们不存在。 这也是建议你不要使用trim别名的原因,这样让代码库中具有一致性 ??

实战用事

使用 padStart 让字符串右对齐

1

2

3

4

console.log('JavaScript'.padStart(15));

console.log('HTML'.padStart(15));

console.log('CSS'.padStart(15));

console.log('Vue'.padStart(15));

得到的结果

1

2

3

4

JavaScript

      HTML

       CSS

       Vue

数字打码

1

2

3

4

5

const bankNumber = '2222 2222 2222 2222';

const last4Digits = bankNumber.slice(-4);

 

last4Digits.padStart(bankNumber.length, '*');

// ***************2222

浏览器支持

padStartpadEnd是同时引入的,因此它们共享相似的浏览器支持, 除了 IE 之外,都 可以用 ??

原文地址:https://dmitripavlutin.com/replace-all-string-occurrences-javascript/

作者: Dmitri Pavlutin

译文地址:https://segmentfault.com/a/1190000023721944

更多编程相关知识,请访问:编程入门!!

以上就是详解JavaScript中的padStart()和padEnd()方法的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

javascript如何转为json字符串

javascript $是什么意思

html怎样格式化输出json数据

javascript怎么设置渐变色

为什么javascript小数相减会出现一长串的小数位数?

javascript怎么将数组转为json格式

浏览器缓存策略的详细介绍(图文)

array中 foreach() 和 map() 的区别

javascript怎么判断正数还是负数

java和javascript一样么

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    暂无评论...