@nemolayn
Создатель бота Nemo

Как убрать все символы до определенного?

У меня есть алгоритм по чистке текста чтобы убрать лишнее слово и оставить все остальные запятые, но получается так что остается одно слово и убираются ВСЕ запятые.

Код:
async function delWords(txt){
// Возьмем переменную текст как "deleteWord word word"
text += (`Original: ` + txt) // чистая переменная

let filter1 = txt.replace(/\s/g, ",")
text += (`\n\nFilter1: ` + filter1) // deleteWord,word,word

let filter2 = filter1.split(/,/)[1]
text += (`\n\nfilter2: ` + filter2) // "word" а надо "word,word"

return text; // возвращаем переменную
}


Ребят
Мне нужно убрать первое слово а не конкретное, решение должно быть уникальным!!!
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
@nemolayn Автор вопроса
Создатель бота Nemo
Возьму и сам отвечу на вопрос.

Рабочий код:
async function delWords(txt, countDeleteWords){
// Возьмем переменную текст как "deleteWord word word"
text += (`Original: ` + txt) // чистая переменная

let filter1 = txt.replace(/\s/g, ",")
text += (`\n\nFilter1: ` + filter1) // deleteWord,word,word

let prefilter = filter1.split(",") // делим все слова на массив: ["deleteWord", "word", "word"]
if(prefilter.length < countDeleteWords){ 
let err = { 
code: 1, 
text: "countDeleteWords is too bigger then count words"
}
return err;
} // Обработка ошибки, может кому то надо
let filter2 = prefilter.slice(countDeleteWords) // убираем n слов(-о) в Array
text += (`\n\nfilter2: ` + filter2) // результат word,word

return text; // возвращаем переменную, по необходимости меняем на filter2
}

После первого фильтра .replace разбил на массив .split и убрал первую часть массива .slice
Можно сократить если сразу после .split написать .slice:
let filter2 = filter1.split(",").slice(countDeleteWords)

Отредактировано для комментатора))
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@defany
Что для вас - лишнее слово? deleteWord? Может есть смысл тогда сделать как-то так:
?
const filter2 = filter1.split(",").filter((word) => word !== "deleteWord")
Ответ написан
@psiklop
txt = txt.replace(/(^|\s)deleteWord(\s|$)/g, "")
Дешевый вариант. Можно проапгрейдить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы