Регулярное выражение
Здравствуйте!
Помогите, пожалуйста. Нужно извлечь из HTML-тэга весь текст и заменить переносы строк на пробелы. А так же удалить все "bla bla"
<span id="text">
<b>bla bla</b><br>
<u>text</u><br>
text, text <br>
text<br>
text<br>
<button>bla bla</button>
</span>
<script src="https://code.jquery.com/jquery-2.0.3.js"></script>
<script>
console.log( $('#text').text().trim().replace(/\n/, ' ') );
</script>
Т.е. мне нужно так: text text,text text text |
<span id="text">
<b>bla bla</b><br>
<u>text</u><br>
text, text <br>
text<br>
text<br>
<button>bla bla</button>
</span>
<script src="https://code.jquery.com/jquery-2.0.3.js"></script>
<script>
console.log( $('#text').text().trim().text().trim().replace(/\n/g, '|').replace(/.+?\|/, '').replace(/.+?\|/, '').replace(/[^|]+$/, '') );
</script>
Затупил. Так работает. Можно как-нибудь упростить? |
Decode,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<span id="text">
<b>bla bla</b><br>
<u>text</u><br>
text, text <br>
text<br>
text<br>
<button>bla bla</button>
</span>
<script src="https://code.jquery.com/jquery-2.0.3.js"></script>
<script>
var txt = $('#text').contents().filter(function() {
return this.nodeType == 3 || this.nodeName == 'U';
}).get().map(el => el.textContent).join(' ').replace(/\s+/g, ' ');
console.log(txt);
</script>
</body>
</html>
|
<span id="text">
<b>bla bla</b><br>
<u>text</u><br>
text, text <br>
text<br>
text<br>
<button>bla bla</button>
</span>
<script>
var txt = document.querySelector("#text").textContent
.replace(/bla bla/g, "") // удаляю «bla bla»
.replace(/(\s*\r?\n\s*)+/g, " ") // заменяю переводы строк на пробелы
.trim()
console.log(txt);
</script>
|
| Часовой пояс GMT +3, время: 12:13. |