RegEx를 사용하여 JavaScript에서 HTML 태그 제거
4702 단어 webdevregexprogrammingjavascript
결과적으로 Zendesk에서 받은 문자열에는 ASCII/Symbol 형식(예: < 및 >)의 html 태그가 포함되어 있고 Deepl Translator API에서 받은 문자열은 동일한 html 태그가 있는 이 문자열을 반환하지만 때때로 html로 작성되었습니다. 형식(예
< and >
).간단히 말해서 이것은 어떻게든 동일하기 때문에 문제가 되지 않아야 합니다. 그러나 UI에서 번역된 텍스트 컨테이너를 채울 때 반복을 피하기 위해 문자열을 사용하여 이전 항목과 비교하기 때문에 이것은 다음이 됩니다. 비교할 때 문자열이 실제로 다르기 때문에 악몽입니다.
우리는 비교를 가능하게 하기 위해 여러 가지 방법을 취할 수 있지만 이를 수행하는 더 간단한 방법이 있습니다. .
기본적으로 Zendesk에서 받은 문자열의 텍스트만 가져오고 있습니다. 저에게 중요한 유일한 것은 번역 컨테이너에 추가할 일반 텍스트를 갖는 것이기 때문입니다. 다른 시나리오에서는 문자열에서 html 형식을 유지하기 위해 태그를 유지해야 하지만 이 특별한 경우 클라이언트는 번역 중인 텍스트의 텍스트 버전만 표시하기를 원하므로 계속 그렇게 할 것입니다.
따라서 이 문자열에서 대체 메소드를 사용하여 HTML 태그를 제거할 수 있습니다. 이를 위해 빌드한 도우미 함수의 예를 보여 드리겠습니다.
/**
* Returns a string containing plain text format
* @constructor
* @param {string} strToSanitize - String to be sanitized
*/
export const clearHTMLTags = (strToSanitize) => {
return strToSanitize.replace(/(<([^>]+)>)/gi, '');
}
어떤 사람들은 이렇게 말할 수도 있습니다. 이 기능의 중요한 점은 무엇입니까? 글쎄요, 먼저 말씀드리자면 저는
/(<([^>]+)>)/gi
를 사용하여 주어진 문자열이 포함할 수 있는 모든 여는 태그와 닫는 태그를 얻습니다.다음으로 'gi' RegEx 한정자를 추가하여 문자열 매개변수에서 정규식 패턴의 모든 항목에 대해 대소문자를 구분하여 검색합니다.
마지막으로 이 regEx와 결합된 replace 메서드를 사용하여 빈 문자열을 추가하여 해당 문자열에서 태그를 제거합니다. 이것의 결과는 이 기능에서 sanitized-html-tags-free 일반 텍스트가 될 것입니다.
이제 평소와 같이 이 접근 방식은 방탄이 아니므로 어떤 경우에는 정규식이 개폐 태그 중 일부를 이해하지 못할 수 있으며 이로 인해 확실히 추가 문자가 있거나 < 또는 >가 누락된 결과가 발생할 수 있습니다. , 많은 양의 HTML 태깅이 있는 더 복잡한 시나리오와 관련하여 모든 세부 사항을 다룰 수 있도록 보다 효율적인 방법을 공유하고 있습니다.
이 작업을 가장 잘 수행하기 위한 제안으로 제시된 접근 방식을 아래에서 찾으십시오.
const betterClearHTMLTags = (strToSanitize) => {
let myHTML = new DOMParser()
.parseFromString(strToSanitize, 'text/html');
return myHTML.body.textContent || '';
}
let myHTML = `<!-- don't > use Regex --><h1>Test</h1>`
console.log(
betterClearHTMLTags(myHTML)
)
// output: Test
음, 여러분, HTML 태그를 정리하고 그 내용을 일반 텍스트로 남기고 싶은 상황에 이르렀을 때 이 두 가지 기능이 모두 유용하다는 것을 알게 되기를 바랍니다. 즐거운 독서, 친구들!
❤️ 이 글이 즐거우셨다면 글을 더 쓰게 되는 동기가 됩니다!
🦄 진정으로 이 기사가 당신에게 전적으로 도움이 되었다고 생각한다면!
🔖 나중에 이 기사를 다시 확인해야 하는 경우.
🤔 귀하의 의견을 남겨주세요, 귀하의 의견은 매우 중요합니다.
Reference
이 문제에 관하여(RegEx를 사용하여 JavaScript에서 HTML 태그 제거), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alvisonhunter/removing-html-tags-in-javascript-using-regex-9h3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)