몇일 전 JavaScript를 사용하여 카운트다운 타이머를 구축하고 있었기 때문에 초와 밀리초 형식을 지정해야 했습니다. 즉, 초는 항상 2자리, 밀리초는 항상 3자리가 되기를 원했습니다. 1
초를 01
로 표시하고, 1
밀리초를 001
로 표시하고 싶습니다. 1
秒显示为 01
,1
毫秒显示为 001
。
我最终写出了自己的函数来“填充”这些数字,但是我发现JavaScript中内置了函数 padStart() 和 padEnd()来实现这些功能。在本文中,我们来看一下如何在JavaScript中利用这些内置函数!
用例
让我们从介绍几种不同的填充用例开始。
标签和值
假设你在同一行上有标签和值,例如 name:zhangsan
和 Phone Number:(555)-555-1234
。如果把他们放在一起看起来会有点奇怪,会是这样:
Name: zhangsan Phone Number: (555)-555-1234
你可能想要这个。
Name: zhangsan Phone Number: (555)555-1234
或这个...
Name: zhangsan Phone Number: (555)555-1234
金额
在中国,显示价格时通常显示两位数的角、分。所以代替这个...
¥10.1
你会想要这个。
¥10.01
日期
对于日期,日期和月份都需要2位数字。所以代替这个...
2020-5-4
你会想要这个。
2020-05-04
时间
与上面的日期类似,对于计时器,你需要2位数字表示秒,3位数字表示毫秒。所以代替这个...
1:1
你会想要这个。
01:001
padstart()
让我们从 padStart()
以及标签和值示例开始。假设我们希望标签彼此正确对齐,以使值在同一位置开始。
Name: zhangsan Phone Number: (555)555-1234
由于 Phone Number
是两个标签中较长的一个,因此我们要在 Name
标签的开头加上空格。为了将来的需要,我们不要把它专门填充到电话号码的长度,我们把它填充到长一点,比如说20个字符。这样一来,如果你在未来使用较长的标签,这一招仍然有效。
在填充之前,这是用于显示此信息的入门代码。
const label1 = "Name"; const label2 = "Phone Number"; const name = "zhangsan" const phoneNumber = "(555)-555-1234"; console.log(label1 + ": " + name); console.log(label2 + ": " + phoneNumber); //Name: zhangsan //Phone Number: (555)-555-1234
现在,让我们填充第一个标签。要调用 padStart()
,你需要传递两个参数:一个用于填充字符串的目标长度,另一个用于你希望填充的字符。在这种情况下,我们希望长度为20,而填充字符为空格。
const label1 = "Name"; const label2 = "Phone Number"; const name = "zhangsan" const phoneNumber = "(555)-555-1234"; console.log(label1.padStart(20, " ") + ": " + name); console.log(label2 + ": " + phoneNumber); // Name: zhangsan ////Phone Number: (555)-555-1234
现在填充第二行。
const label1 = "Name"; const label2 = "Phone Number"; const name = "zhangsan" const phoneNumber = "(555)-555-1234"; console.log(label1.padStart(20, " ") + ": " + name); console.log(label2.padStart(20, " ") + ": " + phoneNumber); // Name: zhangsan //// Phone Number: (555)-555-1234
padEnd()
对于相同的标签和值示例,让我们更改填充标签的方式。让我们将标签向左对齐,以便在末尾添加填充。
初始代码
const label1 = "Name"; const label2 = "Phone Number"; const name = "zhangsan" const phoneNumber = "(555)-555-1234"; console.log(label1 + ": " + name); console.log(label2 + ": " + phoneNumber); //Name: zhangsan //Phone Number: (555)-555-1234
现在,让我们填充第一个标签,与我们之前所做的类似,但有两个小区别。现在,我们使用 padEnd()
而不是padStart()
,并且需要在填充之前将冒号与标签连接起来,这样我们就能确保冒号在正确的位置。
const label1 = "Name"; const label2 = "Phone Number"; const name = "zhangsan" const phoneNumber = "(555)-555-1234"; console.log((label1 + ': ').padEnd(20, ' ') + name); console.log(label2 + ": " + phoneNumber); //Name: zhangsan //Phone Number: (555)-555-1234
现在两行都已填充。
const label1 = "Name"; const label2 = "Phone Number"; const name = "zhangsan" const phoneNumber = "(555)-555-1234"; console.log((label1 + ': ').padEnd(20, ' ') + name); console.log((label2 + ': ').padEnd(20, ' ') + phoneNumber); //Name: zhangsan //Phone Number: (555)-555-1234
数字(价格、日期、计时器等)呢?
padding函数是专门针对字符串而不是数字的,所以,我们需要先将数字转换为字符串。
价格
让我们看一下显示价格的初始代码。
const rmb = 10; const cents = 1; console.log("¥" + rmb + "." + cents); //¥10.1
要填充分,我们需要先将其转换为字符串,然后调用 padStart()
padStart() 및 padEnd()
함수가 내장되어 있다는 것을 알게 되었습니다. 이 글에서는 JavaScript에 내장된 기능을 활용하는 방법을 살펴보겠습니다! 사용 사례몇 가지 패딩 사용 사례를 소개하는 것부터 시작하겠습니다.
라벨 및 값
같은 줄에 라벨과 값이 있다고 가정해 보세요. 예를 들어 이름: zhangsan
및 전화 번호: (555)-555-1234
. 그것들을 합치면 조금 이상해 보일 것입니다. 다음과 같을 것입니다: const rmb = 10;
const cents = 1;
console.log("¥" + rmb + "." + cents.toString().padStart(2,0)); //¥10.01
이것을 원할 수도 있습니다.
const month = 2; const year = 2020; console.log(year + "-" + month); //2020-2또는 이것...
const month = 2; const year = 2020; console.log(year + "-" + month.toString().padStart(2,"0")); // 2020-02
Amount중국에서는 가격을 표시할 때 보통 두 자리 다임과 센트로 표시됩니다. 그래서 이것 대신에...
const seconds = 1; const ms = 1; console.log(seconds + ":" + ms); //1:1당신은 이것을 원할 것입니다.
const seconds = 1; const formattedSeconds = seconds.toString().padStart(2,0); const ms = 1; const formattedMs = ms.toString().padStart(3,0); console.log(formattedSeconds + ":" + formattedMs); // 01:001🎜Date🎜🎜🎜날짜는 일과 월 모두 2자리 숫자가 필요합니다. 그래서 이것 대신에... 🎜rrreee🎜 당신은 이것을 원할 것입니다. 🎜rrreee🎜🎜Time🎜🎜🎜위의 날짜와 유사하게 타이머의 경우 초에 2자리, 밀리초에 3자리가 필요합니다. 그래서 이것 대신에... 🎜rrreee🎜 당신은 이것을 원할 것입니다. 🎜rrreee🎜🎜🎜padstart()🎜🎜🎜🎜
padStart()
와 레이블 및 값 예제부터 시작해 보겠습니다. 값이 동일한 위치에서 시작되도록 레이블이 서로 올바르게 정렬되기를 원한다고 가정해 보겠습니다. 🎜rrreee🎜 전화번호
는 두 태그 중 더 길기 때문에 이름
태그 시작 부분에 공백을 추가해야 합니다. 향후 필요를 위해 특별히 전화번호 길이만큼 채우지 말고 조금 더 길게(예: 20자) 채우겠습니다. 이렇게 하면 나중에 더 긴 레이블을 사용해도 트릭이 계속 작동합니다. 🎜🎜이 정보를 입력하기 전에 표시하기 위한 시작 코드입니다. 🎜rrreee🎜이제 첫 번째 라벨을 채워보겠습니다. padStart()
를 호출하려면 두 개의 매개변수를 전달합니다. 하나는 패딩된 문자열의 대상 길이에 대한 것이고 다른 하나는 패딩하려는 문자에 대한 것입니다. 이 경우 길이는 20이고 패딩 문자는 공백이기를 원합니다. 🎜rrreee🎜 이제 두 번째 행을 채워보세요. 🎜rrreee🎜🎜🎜padEnd()🎜🎜🎜🎜동일한 레이블과 값의 예에서 레이블을 채우는 방법을 변경해 보겠습니다. 끝에 패딩을 추가할 수 있도록 레이블을 왼쪽으로 정렬하겠습니다. 🎜🎜초기 코드🎜rrreee🎜이제 이전에 했던 것과 유사하지만 두 가지 작은 차이점이 있는 첫 번째 레이블을 채워 보겠습니다. 이제 padStart()
대신 padEnd()
를 사용하고 패딩하기 전에 콜론을 레이블에 연결해야 하므로 콜론이 올바른 위치에 있는지 확인합니다. 🎜rrreee🎜이제 두 행이 모두 채워졌습니다. 🎜rrreee🎜🎜🎜숫자(가격, 날짜, 타이머 등)는 어떻습니까? 🎜🎜🎜🎜패딩 함수는 숫자 대신 문자열용이므로 먼저 숫자를 문자열로 변환해야 합니다. 🎜🎜🎜Price🎜🎜🎜가격을 표시하는 초기 코드를 살펴보겠습니다. 🎜rrreee🎜포인트를 채우려면 먼저 문자열로 변환한 다음 padStart()
함수를 호출하여 길이를 1로, 패딩 문자를 '0'으로 지정해야 합니다. 🎜🎜Date🎜🎜 🎜날짜를 표시하는 초기 코드입니다. 🎜rrreee🎜이제 월을 입력하여 두 자릿수인지 확인해 보겠습니다. 🎜rrreee🎜🎜Timer🎜🎜🎜마지막으로 타이머에서는 두 개의 서로 다른 숫자, 초 및 밀리초의 형식을 지정하려고 합니다. 동일한 원칙이 적용되지만. 초기 코드입니다. 🎜rrreee🎜 이제 패딩은 읽기 쉽도록 별도의 줄로 하겠습니다. 🎜rrreee🎜🎜🎜마지막으로🎜🎜🎜🎜패딩 함수를 직접 작성하는 것은 어렵지 않지만 이미 JavaScript에 내장되어 있는데 왜 직접 작성합니까? 이미 많은 흥미로운 기능이 내장되어 있습니다. 직접 무언가를 만들기 전에 빠르게 검색해 보는 것이 좋습니다. 🎜🎜🎜이 기사는 다음에서 복제되었습니다: https://segmentfault.com/a/1190000022812375🎜🎜🎜권장 관련 튜토리얼: 🎜JavaScript 비디오 튜토리얼🎜🎜위 내용은 JS에서 문자열 형식을 지정하기 위해 padStart() 및 padEnd()를 사용하는 방법은 무엇입니까? (팁)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!