const select = document.querySelector('select');
const reg = /^\d\d\. /;
Как проверить, что option должен быть скрыт:
const mustBeHidden = el => !reg.test(el.text);
// или
const mustBeHidden = el => el.textContent.search(reg) !== 0;
// или
const mustBeHidden = el => el.innerText.match(reg) === null;
// или
const mustBeHidden = el => !~-el.innerHTML.split(reg).length;
Как переключать видимость option'а:
const toggle = el => el.hidden = mustBeHidden(el);
// или
const toggle = el => el.style.display = mustBeHidden(el) ? 'none' : '';
// или
const toggle = el => el.style.setProperty('display', mustBeHidden(el) ? 'none' : '');
// или
const toggle = el => el.style.cssText += `display: ${mustBeHidden(el) ? 'none' : 'block'}`;
// или
const toggle = el => el.setAttribute('style', mustBeHidden(el) ? 'display: none' : '');
// или (надо будет добавить в стили .hidden { display: none; })
const toggle = el => el.classList.toggle('hidden', mustBeHidden(el));
Переключаем:
Array.prototype.forEach.call(select.options, toggle);
// или
for (const n of select.children) {
toggle(n);
}
// или
for (let i = 0; i < select.length; i++) {
toggle(select[i]);
}
// или
(function next(i, n = select.item(i)) {
n && (toggle(n), next(-~i));
})(0);
// или
select.querySelectorAll('option').forEach(toggle);