@vetsmen

Как вытащить из строки определенную часть?

Есть 3 типа строк, которые передаются в функцию:
1) username
2) @username
3) https://t.me/username

Как мне возвращать только username, при этом я не знаю заранее, какой конкретно типа строки передается (может передаваться абсолютно любой)?
username - логин телеграм
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Можно достать последовательность подходящих символов, расположенную в конце строки:

str.match(/\w+$/)[0]

Или, порезать строку на куски, использовав качестве разделителей неподходящие символы, и взять последний кусок:

str.split(/\W/).pop()

Или, удалить максимально длинную последовательность символов, оканчивающуюся неподходящим символом:

str.replace(/.*\W/, '')

Или (дикий вариант), ищем максимальный индекс мусорного символа, вырезаем кусок строки, начиная со следующего (если нигде ничего не найдено, везде -1, с единицей это 0, т.е., начало строки) и до конца:

str.slice(1 + Math.max(...[...'@/'].map(n => str.lastIndexOf(n))))

Или (тоже дикий вариант), перебираем строку, добавляем символы в результат, если символ мусорный - сбрасываем результат:

[...str].reduce((acc, n) => '@/'.includes(n) ? '' : acc + n, '')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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