Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

จัดรูปแบบ Software License Key ใน JavaScript

ปัญหา

รับสตริง str (ตัวอักษร/ตัวเลข/ขีด) และ n จัดกลุ่มตัวอักษรให้ยาว n ตัว (กลุ่มแรกสั้นกว่าได้) แปลงเป็นตัวใหญ่ทั้งหมด

ตัวอย่าง

const str = '8-4B0t37-k'; const num = 4;

ผลลัพธ์: '84B0-T37K' (สองกลุ่ม ยาว 4 ตัว)

โค้ดตัวอย่าง

const str = '8-4B0t37-k'; const num = 4; 
const formatKey = (str = '', num = 1) => { 
  let acc = ''; let flag = num; 
  for(let i = str.length - 1; i >= 0; i--){ 
    const char = str.charAt(i); 
    if(char !== '-') { 
      if(flag === 0) { acc = `-${acc}`; flag = num; } 
      acc = `${char.toUpperCase()}${acc}`; flag -= 1; 
    } 
  } 
  return acc; 
}; 
console.log(formatKey(str, num));

คำอธิบาย

  • วนจากท้ายไปหน้า เพื่อจัดการกลุ่มแรกที่อาจสั้นกว่า
  • นับตัวอักษรที่ใส่แล้ว เมื่อครบ num ให้ใส่ขีดและรีเซ็ต

ผลลัพธ์

84B0-T37K