Чем можно заменить цифру в тексте в innerText?
new MutationObserver((mutations, observer) => {
const Node = document.querySelector('.myclass');
if (Node.matches('.myclss') && Node.innerText === 'Cегодня 1 ноября'){
document.querySelector('.button').classList.remove('disabled');
} else {
document.querySelector('.button').classList.add('disabled');
}}).observe(document, { subtree: true, childList: true });
У меня код, который при обнаружении элемента и определённого текста в нём удаляет или добавляет класс. Код работает, но проблема в том, что текст меняется, а точнее меняется всего лишь цифра в этом тексте innerText === 'Cегодня 2 ноября' и так далее. Я сделал так if (Node.matches('.myclss') && Node.innerText === 'Cегодня 1 ноября' || Node.innerText === 'Cегодня 2 ноября' || Node.innerText === 'Cегодня 3 ноября') и так далее. И всё работает. Но код получается грамозкий. Нельзя ли вместо цифры что-то подставить, какой-нибудь универсальный символ innerText === 'Cегодня * ноября'?
Ответы (1 шт):
Можно воспользоваться regex \d+ и немного скорректировать этот участок кода
if (Node.matches('.myclss') && /^Cегодня \d+ ноября$/.test(Node.innerText))
\d+ в регулярном выражении означает одну или более цифр.