详解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核心对象有哪些

通过实例了解javascript数组方法slice()的使用方法

js是什么编程语言?

webgl怎样操作json与echarts图表

javascript如何删除对象属性

canvas如何实现二维码和图片合成的代码

javascript操作dom对象之select(详细解答)

javascript中blur是什么

javascript如何禁止刷新页面

javascript中var,let与const的区别是什么?

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




打赏

取消

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

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

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

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

评论

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