Удалить теги из текста
Помогите с помощью 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, время: 05:33. |