Удалить теги из текста
Помогите с помощью js удалить все теги из текста и ссылки + изображения вставленные ссылками..оставить в тексте нужно только сам текст + теги переноса.
|
alerzo,
блин в чем проблема сделать самому настолько элементарную вещь (или вы не знаете JS?)? если никто не ответит (не даст кода) не обижайтесь, никому просто не хочется делать настолько простую и нудную работу |
Нда =)
alert('<div>text</div>'.replace(/<\/?[^>]+>/g,'')); JQuery alert($('<div>text</div>').text()); |
Цитата:
|
Делал вот так http://learn.javascript.ru/play/Vkgxn
var str = '<p>тут текст<br><br /></p>'var result = str.replace(/(?!(\<br\>|\<br\s\/\>))<\/?[^>]+>/g, ''); с простой строкой получается но если вставлять большой текст то не выходит |
вот так нужно
var result = str.replace(/<[^>]+>/g,''); var str = '<p>приве<br><br />т</p>' var result = str.replace(/<[^>]+>/g,''); alert(result) |
не получается
Цитата:
|
alerzo, это че курить нужно что бы такой бред написать?:blink:
|
я просто вставил текст для примера, очистит ли он все кроме текста или нет..как результат он не работает.
я же явно в тексте темы написал требуется скрипт для очистки текста от всех хтмл тегов кроме тегов переноса..=) |
нет , вы не поняли , у вас скрипт вне тэга скрипт как минимум у вас хтмл перемешан с js - не могу это описать ...
|
Решил проблему заменой по регулярному выражению на пустоту!
подскажите, я использую вот такое вот регулярное (?i)<(div|a|img|\/div|\/a).*?> как сделать лучше чтобы остались только теги переноса,выделение жирным шрифтом.. |
Здравствуйте.
В textarea вывел текст без тегов. А как теперь добавить <br> в местах переноса текста,чтоб сохранить измененный текст? Подскажите пожалуйста. |
sotik,
:-? textarea.value.replace(/[\r\n]+/g,'<br>') |
Спасибо огромное,но я не знаю каак это использовать... :(
Вот что получилось после ajax запроса: creatElem('textarea', 'block_id'); //перевод с помощь функции в текстариа var ow = xmlhttp.responseText; var res = ow.replace(/<[^>]+>/g,''); //убираем теги var result = res.textarea.value.replace(/[\r\n]+/g,'<br>'); //возвращаем теги обратно :) document.getElementById('block_id').innerHTML = result; //выводим результат, - в итоге пусто.` Подскажите пожалуйста синтаксис написания там где надо обратно теги добавить. |
sotik,
вы лучше покажите что на входе у вас и что хотите получить на выходе. а то строка 4 ересь какая-то. |
Конечно ересть... :)
Ну например: в этом контейнере выводится инфа из файла... <div id="block_id" class="insider"></div> Дневник за 2014 год<br> 10.09 5<br> Поскольку с тегами редактировать неудобно я их убираю, перевожу контейнер в текстариа и добавляю инфу: 15ю09 4 Теперь все это мне надо записать обрано в файл,но уже с добавлеными тегами <br> после каждой строчки,иначе в последствии все выведится в одну строку. Вот и получается что в 4 строке кода я не понимаю как это синтаксически сделать. |
Цитата:
<div onblur="alert(this.innerHTML)" contenteditable id="block_id" class="insider"> Дневник за 2014 год<br> 10.09 5<br> </div> |
Очень интересное решение. :)
Правда я пока добился лишь того,что редактируются сами клики. Как вариант все-таки хотелось бы решение как эти теги обратно вернуть, правда там нужно будет еще считать в переменную содержимое текстариа. А в вашем варианте как происходит запись в файл? просто автоматически? |
Не-а,автоматически не записывается.. :)
Все-таки последовательно лучше,а то у меня весь фокус теряется, да и теги эти опять. Вобщем как правильно в том случае записать 4 строку. |
sotik,
:blink: вводите в текстария получаите в диве <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .insider{ background-color: #D2B48C; width: 300px; color: #FFFFFF; } </style> </head> <body> <textarea id="test" name="" onkeyup="foo(this.value)" cols="35" rows="5"> Дневник за 2014 год 10.09 5 </textarea> <div id="block_id" class="insider" onclick="alert(this.innerHTML)"> Дневник за 2014 год<br> 10.09 5<br> </div> <script> function foo(val) { var block = document.getElementById('block_id'); block.innerHTML = val.replace(/[\r\n]+/g, '<br>') } </script> </body> </html> |
Спасибо большое.Наглядно и понятно.
Для себя я выявил нужный мне код: creatElem('textarea', 'block_id'); result = xmlhttp.responseText.replace(/<[^>]+>/g,''); document.getElementById("block_id").value = result.replace(/[\r\n]+/g,'<br>'); Порадую своих гитаристов. :) |
Добавляю в свой текстариа информацию потом пытаюсь присвоить переменной, но почему-то не обновляется,а берется старое...
opt = document.getElementById("block_id").value.replace(/[\r\n]+/g,'<br>\r\n'); |
sotik,
по обрывкам кода можно только гадать. |
После клика по объекту мы через ajax, обращаясь к определенному файлу,выводим в контейнере информацию и переводим этот контейнер в textaria для редактирования, по-пути убираем теги для удобства:
creatElem('textarea', 'block_id'); result = xmlhttp.responseText.replace(/<[^>]+>/g,''); document.getElementById("block_id").value = result; далее жмем кнопку для записи в файл обновленной информации: opt = document.getElementById("block_id").value.replace(/[\r\n]+/g,'<br>\r\n'); goText('wikli/zh/' + href,opt); Вместо новой информации записывается старая. |
Все.Разобрался.
Все нормально записывается,дело оказалось в пути к файлу. Конечный путь - Карина Подберезкина (текстовый документ). php не записывает в этот же файл с русским имененм,а создает свой с абракадабровским именем. :) Это можно как-то поправить или придется менять названия файлов на англ. ? |
Так.С этим понятно.
Дабы не загромождать код,подскажите как выявить порядковый номер элемента, по кторому был клик? <ul id="raspis"> <li>Рита Ковалева</li> <li>Степан Орлов</li> <li>Карина Подберезкина</li> </ul> |
Цитата:
|
sotik,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <ul id="raspis"> <li>Рита Ковалева</li> <li>Степан Орлов</li> <li>Карина Подберезкина</li> </ul> <script> document.getElementById('raspis').onclick = function(e){ var el = e.target; if(el.tagName == 'LI'){ alert(getNum(el)); } } function getNum(el) { var i = 0; while (el = el.previousSibling) { el.nodeType == 1 && i++; } return i; } </script> </body> </html> |
Спасибо.Все теперь работает отлично :)
|
Как каждую строку текста обрамить тегами <li.</li>,получилось только закрывающим.. :)
var block = document.getElementById("block_id").value; result = block.replace(/[\r\n]+/g,'</li>\r\n'); |
sotik,
result = block.replace(/[\r\n]+/g,'</li>\r\n<li>'); result = '<li>' + result+ </li> |
Первую строчку я тоже так прописывал.В итоге получается что первая строка в файле без открывающего тега <li>,а в конце лишний открывающий.
Рита Ковалева (2 класс)</li> <li>Фургуцатель Ахмитуян (1 класс)</li> <li> А если дописываю вторую строчку из вашего кода,то он вообще не работает. |
Нашел ошибку.Не хватало экранирования ''
|
Часовой пояс GMT +3, время: 21:37. |