Как правильно валидировать такой хэш-тег?

Есть такая функция для валидации поля с хэш-тегами - https://codepen.io/viktoraz/pen/KKmqLKK?editors=1010

Хэш-теги должны разделяться пробелом и каждый должен соответствовать шаблону.
1 проблема в том, что регулярка не проверяет каждый хэш-тег, то есть она позволяет ввести первый хэш-тег без решетки, если последний будет с решеткой.
2 проблема заключается в очистке поля. Если ввести любые символы, а потом очистить поле, поле все равно будет не валидным, хотя он пустое (проверял)

Я предполагаю, что проблема просто в регулярке, но перепробовал много разных, ничего не подходит. Может есть другой способ валидировать хэш-теги?
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
gdt
@gdt
Программист
Как вариант, вы могли бы сделать чуть более мощную регулярку, допускающую 1 или более валидных хэштегов, разделённых пробелами. Очень грубо - добавить в конец вашей регулярки (перед концом строки) \s* и завернуть всё это дело в ()+.
Например, regex: (#(?<tag>[A-Za-zА-Яа-я]{1,19})\s*)+ (https://regex101.com/r/rfH4AA/1)
Затем достаём все значения группы tag, я в js не силён но думаю должен быть способ.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alekcena
В попытках обрести навыки и умения
Не понимаю в чём проблема типо
if("ПОЛЕ ПУСТОЕ"){
//Не проверяете регуляркой
//Отправляете на сервак
}

Далее вы сказали:

Хэш-теги должны разделяться пробелом

Получаем все хештеги из строки пользователя
let input = "#adsasddasd #adsasdasda #gadsqw-asdas"

let arrHashTag = input.split(" ");

Думаю дальше проверить каждый отдельный элемент на
соответствие шаблону

Не составит труда
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
23 сент. 2021, в 09:09
60000 руб./за проект
23 сент. 2021, в 08:59
25000 руб./за проект
23 сент. 2021, в 08:21
5000 руб./за проект