@romaro

Как получить названия всех форм на странице в виде массива?

На разных страницах сайта есть формы с css-классами, названия которых соответствуют регулярному выражению:
js-[a-z-]*-form

Например:
js-signup-form
js-create-product-form

Мне нужно создать функцию, которая, при загрузке страницы, будет возвращать массив названий этих форм, т.е. извлечет строку между "js-" и "-form":
[signup, create-product]

Как это лучше реализовать? Смотреть в сторону работы с HTML-коллекцией?
Array.from(document.getElementsByTagName('p')).map((item) => item.innerHTML.replace('...', '...'))


Если да, то как лучше удалить все лишние данные из кода для каждой формы?
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Array
  .from(document.querySelectorAll('form'), n => [...n.classList])
  .flat()
  .map(n => n.match(/^js-([a-z-]*)-form$/)?.[1])
  .filter(Boolean)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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