猿问

使用Regex删除Javascript中的HTML标签

我正在尝试从Javascript的字符串中删除所有html标记。这是我所拥有的...我不知道为什么它不起作用....有人知道我在做什么错吗?


<script type="text/javascript">


var regex = "/<(.|\n)*?>/";

var body = "<p>test</p>";

var result = body.replace(regex, "");

alert(result);


</script>

非常感谢!


慕妹3242003
浏览 646回答 3
3回答

萧十郎

尝试此操作,注意HTML语法过于复杂,以至于正则表达式在100%的时间内都是正确的:var regex = /(<([^>]+)>)/ig,&nbsp; &nbsp;body = "<p>test</p>",&nbsp; &nbsp;result = body.replace(regex, "");console.log(result);如果您愿意使用jQuery之类的库,则可以执行以下操作:console.log($('<p>test</p>').text());

森栏

这是一个古老的问题,但是我偶然发现了这个问题,并以为我会分享我使用的方法:var body = '<div id="anid">some <a href="link">text</a></div> and some more text';var temp = document.createElement("div");temp.innerHTML = body;var sanitized = temp.textContent || temp.innerText;消毒后将包含: "some text and some more text"简单,不需要jQuery,即使在更复杂的情况下也不应让您失望:)詹姆士

www说

这是TextAngular(WYSISYG编辑器)的工作方式。我还发现这是最一致的答案,那就是“无正则表达式”。@license textAngularAuthor : Austin AndersonLicense : 2013 MITVersion 1.5.16// turn html into pure text that shows visiblityfunction stripHtmlToText(html){&nbsp; &nbsp; var tmp = document.createElement("DIV");&nbsp; &nbsp; tmp.innerHTML = html;&nbsp; &nbsp; var res = tmp.textContent || tmp.innerText || '';&nbsp; &nbsp; res.replace('\u200B', ''); // zero width space&nbsp; &nbsp; res = res.trim();&nbsp; &nbsp; return res;}
随时随地看视频慕课网APP
我要回答