2016-10-18 3 views
1

인터넷에서이 코드 조각을 발견했습니다. 문장 하나 하나를 하나의 단어로 연결합니다. 하지만 문장이 약한면이 있습니다. 문장에 HTML이 포함되어 있으면이 스크립트가이를 제거하지 않습니다. 예를 들어스크립트에서 HTML 태그 제거

: 그것은 당신이 'http://www.merriam-webster.com/dictionary/asserted'에 '<b>asserted</b>를'변경이 코드의 변화에 ​​걸 말해 주시겠습니까 '<b>asserted</b>'

'http://www.merriam-webster.com/dictionary/<b>asserted</b>'로 대체합니다.

var content = document.getElementById("sentence").innerHTML; 

var punctuationless = content.replace(/[.,\/#!$%\؟^?&\*;:{}=\-_`~()”“"]/g, ""); 
var mixedCase = punctuationless.replace(/\s{2,}/g); 
var finalString = mixedCase.toLowerCase(); 

var words = (finalString).split(" "); 

var punctuatedWords = (content).split(" "); 

var processed = ""; 
for (i = 0; i < words.length; i++) { 
    processed += "<a href = \"http://www.merriam-webster.com/dictionary/" + words[i] + "\">"; 
    processed += punctuatedWords[i]; 
    processed += "</a> "; 
} 

document.getElementById("sentence").innerHTML = processed; 
+1

가능한 중복 작동 붙여 넣을 경우 : 방법을 문자열에서 HTML 태그를 제거 하시겠습니까?] (http://stackoverflow.com/questions/5002111/javascript-how-to-strip-html-tags-from-string) – evolutionxbox

+0

다음과 같이 정규 표현식에서'.'를 이스케이프 처리 할 수 ​​있습니다. ' \ .', 예를 들어'\ -'와 같이. – Azamantes

+2

[Strip HTML from Text JavaScript] (http://stackoverflow.com/questions/822452/strip-html-from-text-javascript) – Andreas

답변

5

이 정규식/< {1} [^ <>] {1}> {1}/g이 두 가지 사이에있는 문자열에서 텍스트를 교체해야합니다 <> 및 대괄호 자체에 공백이 있습니다. 이

var str = "<hi>How are you<hi><table><tr>I<tr><table>love cake<g>" 
 
    str = str.replace(/<{1}[^<>]{1,}>{1}/g," ") 
 
    document.writeln(str);

는 "어떻게 내가 케이크를 사랑하고 있습니다"다시 줄 것이다.

당신은 아래이

var stripHTML = str.mixedCase(/<{1}[^<>]{1,}>{1}/g,"") 

var mixedCase = punctuationless.replace(/\s{2,}/g); 

이후 라인에 stripHTML와 MixedCase는 대체, 아마 자바 스크립트 [의

+0

고맙습니다! 그게 효과가있어 :) –

+0

도와 줘서 고마워. 그것은 정말로 귀중했습니다. –

+0

언제든지 환영합니다. –

1
function stripAllHtml(str) { 
    if (!str || !str.length) return '' 

    str = str.replace(/<script.*?>.*?<\/script>/igm, '') 

    let tmp = document.createElement("DIV"); 
    tmp.innerHTML = str; 

    return tmp.textContent || tmp.innerText || ""; 
} 

stripAllHtml('<a>test</a>') 

이 기능은 모든 HTML을 제거하고 텍스트 만 반환합니다.

희망이가 작동하면

+0

답변 해 주셔서 감사합니다. 스크립트에서이 함수를 어디에 둘 것인지 말해 주시겠습니까? –

+0

@ МаксимЦіпан 어디서나이 기능에 HTML 문자열을 전달하고 URL을 작성하는 동안 반환 된 결과를 사용하려는 경우 –

+0

@ gaurav joshi 도움과 인내심을 가져 주셔서 감사합니다. –