如何使用Javascript / jQuery从div内容中删除HTML标记?
我制作了一个div
标签并将其内容存储在变量中。 如果此标记包含p,b
或任何其他标记,则应从字符串中删除它。 我怎样才能做到这一点?
使用正则表达式。
var regex = /(<([^>]+)>)/ig var body = "test
" var result = body.replace(regex, ""); alert(result);
这是演示
希望这可以帮助。
您可以按照此示例操作
var stringContent = "Hi dear
Wish you a happy birthday
"; var text = $(stringContent).text();
这更安全:
function plaintext(html){ return $("").html(html).text(); }
我想在接受的答案之上添加一些内容,这表明正则表达式
var regex = /(<([^>]+)>)/ig
:
- 你不需要你的正则表达式中的
i
标志,因为你不匹配任何字母字符。 见这里: http : //jsfiddle.net/66L6nfwt/2/ - 你不需要任何一对支架,因为你只需更换整个匹配。 见这里: http : //jsfiddle.net/66L6nfwt/3/
- 如果在文本内容中同时使用字符
<
和>
,则可以改进此正则表达式,因为它将失败。 见这里: http : //jsfiddle.net/66L6nfwt/4/ - 所以这是一个正则表达式改进:
/<\/?\w+[^>]*\/?>/g
。 见这里: http : //jsfiddle.net/66L6nfwt/5/
最终代码:
var regex = /<\/?\w+[^>]*\/?>/g, body = "test sss what if you write some maths: i < 2 && i > 4."; alert(body.replace(regex, ""));
将函数放在内置的“String”类中也是有帮助的,这样您就可以直接执行此操作:
"test".stripTags()
String.prototype.stripTags = function() { return this.replace(/<\/?\w+[^>]*\/?>/g, ''); };
最后,如果你的字符串是一个DOM节点,你可以做alert(element.innerText || element.textContent);
这是内置的,甚至更安全! 请参见此处的示例: http : //jsfiddle.net/66L6nfwt/6/
使用普通的javascript你可以这样做
string.replace(/(<([^>]+)>)/ig,"");
我认为这可能比.text()方法更快。
解决方案使用JQuery:
var content = "Dear Andy,
This is a test message.
"; var text = $(content).text();
使用JavaScript解决方案:
function removeTags(){ var txt = document.getElementById('myString').value; var rex = /(<([^>]+)>)/ig; alert(txt.replace(rex , "")); }
另请查看此链接: 在JavaScript中删除HTML标记