Регулярное выражение
Здравствуйте!
Помогите, пожалуйста. Нужно извлечь из 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, время: 06:45. |