Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tách từ camelCase trong JavaScript (Uncamelise)

Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi làm đối số đầu tiên và một ký tự phân tách làm đối số thứ hai.

Chuỗi đầu tiên đảm bảo là chuỗi camelCased. Hàm nên chuyển đổi trường hợp của chuỗi bằng cách tách các từ bằng ký tự phân tách được cung cấp làm đối số thứ hai.

Ví dụ:

Nếu chuỗi đầu vào là:

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

Thì chuỗi đầu ra nên là:

const output = 'this_is_a_string';

Ví dụ

Dưới đây là mã nguồn:

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));

Kết quả

Đầu ra trên console:

this_is_a_string

Cách đơn giản hơn: str.replace(/([A-Z])/g, separator + '$1').toLowerCase() (cần xử lý trường hợp chữ cái đầu).