* fix in the Advanced Code Solution to make it work when run tests * making htmlEntities a const to fix the example
9.6 KiB
9.6 KiB
title, localeTitle
title | localeTitle |
---|---|
Convert HTML Entities | Преобразование HTML-объектов |
Не забудьте использовать
Read-Search-Ask
если вы застряли. Попробуйте подключить программу и напишите свой собственный код
Проблема Объяснение:
- Вам нужно создать программу, которая будет конвертировать объекты HTML из строки в соответствующие HTML-объекты. Есть только несколько, поэтому вы можете использовать разные методы.
Подсказка: 1
- Вы можете использовать регулярные выражения, но в этом случае я этого не делал.
попытаться решить проблему сейчас
Подсказка: 2
- Вы выиграете от диаграммы со всеми html-объектами, чтобы вы знали, какие из них являются правильными.
попытаться решить проблему сейчас
Подсказка: 3
- Вы должны отделить строку и работать с каждым символом, чтобы преобразовать правильные, а затем присоединиться ко всему резервному копированию.
попытаться решить проблему сейчас
Осторожно, спойлеры!
Решение впереди!
Решение базового кода:
function convertHTML(str) {
// Split by character to avoid problems.
var temp = str.split('');
// Since we are only checking for a few HTML elements I used a switch
for (var i = 0; i < temp.length; i++) {
switch (temp[i]) {
case '<':
temp[i] = '<';
break;
case '&':
temp[i] = '&';
break;
case '>':
temp[i] = '>';
break;
case '"':
temp[i] = '"';
break;
case "'":
temp[i] = "'";
break;
}
}
temp = temp.join('');
return temp;
}
//test here
convertHTML("Dolce & Gabbana");
Код Объяснение:
Объясните решение здесь и добавьте соответствующие ссылки
Связанные ссылки
Решение промежуточного кода:
function convertHTML(str) {
//Chaining of replace method with different arguments
str = str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,"'");
return str;
}
// test here
convertHTML("Dolce & Gabbana");
Код Объяснение:
Объясните решение здесь и добавьте соответствующие ссылки
Связанные ссылки
Расширенное решение для кода:
function convertHTML(str) {
// Use Object Lookup to declare as many HTML entities as needed.
const htmlEntities={
'&':'&',
'<':'<',
'>':'>',
'"':'"',
'\'':"'"
};
//Use map function to return a filtered str with all entities changed automatically.
return str.split('').map(entity => htmlEntities[entity] || entity).join('');
}
// test here
convertHTML("Dolce & Gabbana");
Код Объяснение:
- Создайте объект, чтобы использовать функциональность Lookup, чтобы легко находить символы.
- Разделите исходную строку символами и используйте карту, чтобы проверить измененный объект html или использовать тот же самый. В качестве альтернативы вы можете использовать Regex
str.replace(/&|<|>|"|'/gi
. - Добавлена функция a, которая возвращает преобразованный объект или исходный, если конверсия отсутствует. Если вы перейдете по маршруту регулярного выражения, вам просто нужно вернуть совпадающие удары.
return html[entity];
- Наконец, мы снова присоединяем все символы.
Обратите внимание, что если вы отправили маршрут регулярного выражения, вам не нужно ничего присоединяться, просто убедитесь, что вы вернули всю операцию или сохранили ее в переменной, а затем вернете ее.
Связанные ссылки
ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
НЕ добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это похоже, но лучше , попробуйте объединить (или заменить) существующее подобное решение.
- Добавьте объяснение своего решения.
- Классифицируйте решение в одной из следующих категорий - Basic , Intermediate и Advanced .
- Пожалуйста, добавьте свое имя пользователя, только если вы добавили соответствующее основное содержимое . (
НЕ удаляйте существующие имена пользователей )
Видеть
![]()
Wiki Challenge Solution Template
дляWiki Challenge Solution Template
для справки.