Javascript의 문자열에서 모든 html 태그를 제거하려고합니다. 여기에 내가 가진 것이 … 왜 작동하지 않는지 알 수 없습니다 …. 내가 뭘 잘못하고 있는지 아는 사람 있나요?
<script type="text/javascript">
var regex = "/<(.|\n)*?>/";
var body = "<p>test</p>";
var result = body.replace(regex, "");
alert(result);
</script>
감사합니다!
답변
HTML의 문법이 너무 복잡해서 정규식이 100 % 정확하기에는 너무 복잡하다는 점에 유의하십시오.
var regex = /(<([^>]+)>)/ig
, body = "<p>test</p>"
, 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;
sanitized
이제 다음이 포함됩니다. "some text and some more text"
간단하고 jQuery가 필요하지 않으며 더 복잡한 경우에도 실망하지 않아야합니다.
답변
이것은 나를 위해 일했습니다.
var regex = /( |<([^>]+)>)/ig
, body = tt
, result = body.replace(regex, "");
alert(result);
답변
TextAngular (WYSISYG Editor)가 수행하는 방법은 다음과 같습니다. 나는 또한 이것이 가장 일관된 대답 인 NO REGEX라는 것을 발견했습니다.
@license textAngular
Author : Austin Anderson
License : 2013 MIT
Version 1.5.16
// turn html into pure text that shows visiblity
function stripHtmlToText(html)
{
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
var res = tmp.textContent || tmp.innerText || '';
res.replace('\u200B', ''); // zero width space
res = res.trim();
return res;
}
답변
undrescore.string.js 인 관리 문자열에 강력한 라이브러리를 사용할 수 있습니다.
_('a <a href="#">link</a>').stripTags()
=> ‘링크’
_('a <a href="#">link</a><script>alert("hello world!")</script>').stripTags()
=> ‘a linkalert ( “hello world!”)’
이 lib를 다음과 같이 가져 오는 것을 잊지 마십시오.
<script src="underscore.js" type="text/javascript"></script>
<script src="underscore.string.js" type="text/javascript"></script>
<script type="text/javascript"> _.mixin(_.str.exports())</script>
답변
FuncJS라는 내 간단한 JavaScript 라이브러리에는 정규식을 입력하지 않고도 작업을 수행하는 “strip_tags ()”라는 함수가 있습니다.
예를 들어 문장에서 태그를 제거하고 싶다고 가정 해 보겠습니다.이 함수를 사용하면 다음과 같이 간단하게 수행 할 수 있습니다.
strip_tags("This string <em>contains</em> <strong>a lot</strong> of tags!");
그러면 “이 문자열에는 많은 태그가 포함되어 있습니다!”가 생성됩니다.
더 나은 이해를 위해 GitHub FuncJS 에서 문서를 읽으십시오
.
또한 원하는 경우 양식을 통해 몇 가지 피드백을 제공하십시오. 나에게 매우 도움이 될 것입니다!
답변
이것은 HTML 태그 및 & nbsp 등의 솔루션이며 HTML없이 텍스트를 가져 오기위한 조건을 제거 및 추가 할 수 있으며 임의의 것으로 대체 할 수 있습니다.
convertHtmlToText(passHtmlBlock)
{
str = str.toString();
return str.replace(/<[^>]*(>|$)| |‌|»|«|>/g, 'ReplaceIfYouWantOtherWiseKeepItEmpty');
}