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

การแปลง camelCase เป็นสตริงคั่นด้วยตัวแบ่งใน JavaScript

บทความนี้สาธิตฟังก์ชันแปลงสตริง camelCase ให้คั่นคำด้วยตัวแบ่งที่กำหนด (เช่น underscore)

ตัวอย่าง

const str = 'thisIsAString';
const separator = '_';
// ผลลัพธ์: 'this_is_a_string'

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

const str = 'thisIsAString';
const separator = '_';

const separateCase = (str = '', separator = ' ') => {
  const arr = [];
  let left = 0, right = 0;
  for (let i = 0; i < str.length; i++) {
    const el = str[i];
    const next = str[i + 1];
    if ((el.toUpperCase() === el && el.toUpperCase() !== el.toLowerCase()) || !next) {
      right = i + Number(!next);
    }
    if (left !== right) {
      const sub = str.substring(left, right).toLowerCase();
      arr.push(sub);
      left = right;
    }
  }
  return arr.join(separator);
};

console.log(separateCase(str, separator));

ผลลัพธ์

this_is_a_string

คำอธิบาย

อัลกอริทึมสแกนหาตัวอักษรพิมพ์ใหญ่ (uppercase) ซึ่งเป็นจุดเริ่มต้นคำใหม่ใน camelCase ตัด substring ระหว่าง left และ right แปลงเป็น lowercase แล้ว join ด้วย separator

จัดการตัวอักษรสุดท้ายด้วยเงื่อนไข !next