String Pad trong JavaScript

Tram Ho

Bài viết này mình sẽ giới thiệu về padStartpadEnd và 1 số thông tin về chúng.

1. Syntax

Cú pháp của String Pad khá là đơn giản:

2. Understanding the Parameters

2 phương thức padEndpadStart đều nhận vào các parameters tương tự nhau

2.1. targetLength

Độ dài của chuỗi kết quả khi str hiện tại được pad. Nếu độ dài của str lớn hơn targetLength thì kết quả trả về vẫn là str (không bị thay đổi)

Note: targetLength không phải số lần str được pad

2.2. padString

padString là chuỗi dùng để pad hiện tại. Nếu không set padString thì nó sẽ nhận giá trị default là " " (U+0020 ‘SPACE’).

Nếu bạn truyền vào empty string, thì nó sẽ không làm gì cả :v

Nếu padString dài dẫn tới kết quả trả về dài hơn targetLength thì nó sẽ được truncated từ cuối lên đầu của padString.

How it handles other data types

Như đã nói ở trên, kiểu của parameter thứ 2 truyền vào là string. Tuy nhiên bạn vẫn có thể truyền giá trị kiểu khác vào, nó sẽ tự động convert thành string thông qua phương thức toString()

Ở trên là kết quả của toString() cho 1 số kiểu dữ liệu.

Handling undefined

Có 1 điểm khá thú vị, khi bạn convert undefined sang string bằng toString thì bạn sẽ gặp lỗi TypeError:

Tuy nhiên, nếu bạn truyền undefined như padString thì bạn sẽ không gặp lỗi:

Tại sao nhỉ? Theo như spec:

ECMAScript Spec If fillString is undefined, let filler be the String value consisting solely of the code unit 0x0020 (SPACE).

=> Khi bạn truyền giá trị khác undefined (dĩ nhiên là khác cả string) nó sẽ tự động convert giá trị truyền vào thành string thông qua phương thức toString()

Use Case

Tabular Formatting with padEnd

Một trong những ứng dụng của string pad thường được dùng đó là là formatting

Right Aligning String with padStart

Căn trái / phải với padStartpadEnd mà không dùng css

Kết quả sẽ là:

Receipt formatting

Bạn cũng có thể căn đều 2 bên text (vẫn không dùng css)

Kết quả:

Masking Numbers

Một ứng dụng nữa của nó là masking number, hiểu đơn giản là ẩn 1 số thành phần của 1 dãy số (thường là card number)

Browser Support

padStartpadEnd được giới thiệu đồng thời và nó hỗ trợ các browser giống nhau – tất cả browser ngoại trừ Internet Explorer

Browser
Chrome
Firefox
Safari
Edge
Internet Explorer

Reference

https://www.samanthaming.com/tidbits/97-string-padstart-padend/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo