Функция которая получает строку и удаляет из нее символы
Вот само задание:
Написать функцию, которая получает в качестве аргумента строку и удаляет из нее символы,код которых больше 1103 или меньше 1040. Функция должна вернуть новую строку Применить эту функцию к строке
"Вчbvnера 789 был home work наiuyстоtящий + празrorднgfdик"
Есть набросок, но он не корректно работает:
function sliceChars(str) {
var newStr = "";
for (var i = 0; i < str.length; i++) {
var symbol = str.charCodeAt(i);
if (symbol < 1103 && symbol > 1040) {
newStr += str[i];
}
if (symbol === 32) {
newStr += " ";
continue;
}
}
return newStr;
}
console.log(
sliceChars("Вчbvnера 789 был home work наiuyстоtящий + празrorднgfdик")
);
Прошу сделать только в виде функии. Или доделать данную, или написать с нуля. Заранее спасибо!
Ответы (2 шт):
Автор решения: Alexander Lonberg
→ Ссылка
:) Не разобрался сразу с вопросом. Вариант с удалением кодов символов. Пробелы, как я понимаю, нужно оставить.
function remove(str, start, end) {
return str.replace(/[^\s]/g, (_) => {
let n = _.charCodeAt()
return (n < start || n > end) ? '' : _
})
// Вот это можно вставить для чистки лишних пробелов
.replace(/\s+/g, ' ')
}
const str = "Вчbvnера 789 был home work наiuyстоtящий + празrorднgfdик"
console.log(remove(str, 1040, 1103))
Это был первый вариант с удалением чисел. Оставлю его :)
function remove(str, start, end) {
return str.replace(/[0-9]+/g, (_) => {
let n = Number.parseInt(_, 10)
return (n < start || n > end) ? '' : _
})
}
const str = "Вчbvnера 789 был home work наiuyстоtящий + празrorднgfdик"
const str2 = "Вчbvnера 1050 был home work наiuyстоtящий + празrorднgfdик"
console.log(remove(str, 1040, 1103))
console.log(remove(str2, 1040, 1103))
Автор решения: vsemozhebuty
→ Ссылка
Если ошибка в лишних пробелах, то можно исправить небольшим добавлением в условие:
function sliceChars(str) {
var newStr = "";
for (var i = 0; i < str.length; i++) {
var symbol = str.charCodeAt(i);
if (symbol < 1103 && symbol > 1040) {
newStr += str[i];
}
// Вот тут:
if (symbol === 32 && newStr[newStr.length - 1] !== " ") {
newStr += " ";
}
}
return newStr;
}
console.log(
sliceChars("Вчbvnера 789 был home work наiuyстоtящий + празrorднgfdик")
);