8.8 KiB
8.8 KiB
title, localeTitle
| title | localeTitle |
|---|---|
| Spinal Tap Case | Чехол для спинного диска |
Не забудьте использовать Read-Search-Ask если вы застряли. Попробуйте подключить программу
и напишите свой собственный код 
Проблема Объяснение:
Преобразуйте данную строку в строчное предложение со словами, связанными тире.
Связанные ссылки
Подсказка: 1
Создайте регулярное выражение для всех пробелов и подчеркиваний.
попытаться решить проблему сейчас
Подсказка: 2
Вам также придется сделать все в нижнем регистре.
попытаться решить проблему сейчас
Подсказка: 3
Сложная часть - заставить часть регулярного выражения работать, как только вы это сделаете, просто переведите верхний регистр в нижний регистр и замените пробелы символами подчеркивания, используя replace() .
попытаться решить проблему сейчас
Осторожно, спойлеры!
Решение впереди!
Решение базового кода:
function spinalCase(str) {
// Create a variable for the white space and underscores.
var regex = /\s+|_+/g;
// Replace low-upper case to low-space-uppercase
str = str.replace(/([az])([AZ])/g, '$1 $2');
// Replace space and underscore with -
return str.replace(regex, '-').toLowerCase();
}
// test here
spinalCase('This Is Spinal Tap');
Код Объяснение:
- регулярное выражение содержит регулярное выражение
/\s+|_+/g, которое выберет все пробелы и подчеркивания. - Первая
replace()помещает пробел перед любыми встречающимися прописными буквами в строке str, чтобы потомки могли быть заменены на дефисы позже. - При возврате строки другая
replace()заменяет пробелы и символы подчеркивания тире с помощью regex .
Решение промежуточного кода:
function spinalCase(str) {
// Replace low-upper case to low-space-uppercase
str = str.replace(/([az])([AZ])/g, '$1 $2');
// Split on whitespace and underscores and join with dash
return str.toLowerCase().split(/(?:_| )+/) .join('-');
}
// test here
spinalCase('This Is Spinal Tap');
Код Объяснение:
- Подобно первому решению, первая
replace()помещает пробел перед любыми встречающимися прописными буквами в строке str, чтобы потомки могли быть заменены дефишированными позже. - Вместо того чтобы использовать
replace()здесь для замены пробелов и подчеркивания тире, строкаsplit()на регулярное выражение/(?:_| )+/Иjoin()-ed on-.
Связанные ссылки
Расширенное решение для кода:
function spinalCase(str) {
// "It's such a fine line between stupid, and clever."
// --David St. Hubbins
return str.split(/\s|_|(?=[AZ])/).join('-').toLowerCase()
}
Код Объяснение:
- Разделите строку в одном из следующих условий ( преобразование в массив )
- пробельный символ [
\s] встречается - символ подчеркивания [
_] встречается - или за ним следует заглавная буква [
(?=[AZ])]
- пробельный символ [
- Присоединитесь к массиву с помощью дефиса (
-) - Опишите всю полученную строку
Связанные ссылки
ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
НЕ добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это похоже, но лучше , попробуйте объединить (или заменить) существующее подобное решение.- Добавьте объяснение своего решения.
- Классифицируйте решение в одной из следующих категорий - Basic , Intermediate и Advanced .

- Пожалуйста, добавьте свое имя пользователя, только если вы добавили соответствующее основное содержимое . (
НЕ удаляйте существующие имена пользователей )
Видеть
![]()
Wiki Challenge Solution TemplateдляWiki Challenge Solution Templateдля справки.


