@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('...', '...'))


Если да, то как лучше удалить все лишние данные из кода для каждой формы?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const result = Array
  .from(document.forms, n => n.className.matchAll(/(?:^| )js-([a-z-]*)-form(?= |$)/g))
  .flatMap(n => Array.from(n, m => m[1]));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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