Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск и замена строки (https://javascript.ru/forum/misc/79821-poisk-i-zamena-stroki.html)

TheSanches 30.03.2020 14:22

Поиск и замена строки
 
Подскажите пожалуйста, как сделать поиск строки на всей html странице, нужно найти все совпадения, к примеру (000-00-00), и заменить их на новый номер к примеру (111-11-11), спасибо.

Пытался так...
let textAll = document.documentElement.textContent;
console.log(textAll.replace(new RegExp("000-00-00",'g'),"111-11-11"));

Но в таком случае меняется только последний номер, и не совсем ясно, как это поменять на странице.

voraa 30.03.2020 16:03

Я бы так попробовал

const changeText = (node, textrepl, textnew) => {
	const type = node.nodeType;
        const tag = node.tagName;
	if ((type == 1 && tag !== 'SCRIPT' && tag !== 'STYLE') || type == 3 || type == 9) {
		const childs = node.childNodes;
		if (childs.length) {
			Array.prototype.forEach.call(childs, nd => changeText(nd, textrepl, textnew));
		} else {
			node.textContent= node.textContent.replace(new RegExp(textrepl,'g'), textnew);
		}
	}
}
changeText (document.documentElement, "000-00-00", "111-11-11")
console.log(document.documentElement.textContent);


Часовой пояс GMT +3, время: 04:45.