Напишите функцию, которая принимает строку в PascalCase и возвращает строку в snake_case. Символы нижнего регистра могут быть цифрами. Если метод получает число в качестве входных данных, он должен вернуть строку.
Пример кода:
toUnderscore("TestController") => "test_controller"
toUnderscore("MoviesAndBooks") => "movies_and_books"
toUnderscore("App7Test") => "app7_test"
toUnderscore(1) => "1"Решение задачи🔽
function toUnderscore(string) {
// Если входное значение число, вернуть его как строку
if (typeof string === 'number') {
return string.toString();
}
// Преобразовать PascalCase в snake_case
return string
.replace(/([A-Z])/g, '_$1') // Вставить подчеркивание перед каждой заглавной буквой
.toLowerCase() // Преобразовать всю строку в нижний регистр
.replace(/^_/, ''); // Удалить начальное подчеркивание, если оно есть
}
// Примеры использования:
console.log(toUnderscore("TestController")); // "test_controller"
console.log(toUnderscore("MoviesAndBooks")); // "movies_and_books"
console.log(toUnderscore("App7Test")); // "app7_test"
console.log(toUnderscore(1)); // "1"