var okTags = /^(<\/?(b|blockquote|code|del|dd|dl|dt|em|h1|h2|h3|i|kbd|li|ol|p|pre|s|sup|sub|strong|strike|ul)>|<(br|hr)\s?\/?>)$/i;
var okLinks = /^(<a\shref="(\#\d+|(https?|ftp):\/\/[-A-Za-z0-9+&@#\/%?=~_|!:,.;\(\)]+)"(\stitle="[^"<>]+")?\s?>|<\/a>)$/i;
var okImg = /^(<img\ssrc="https?:(\/\/[-A-Za-z0-9+&@#\/%?=~_|!:,.;\(\)]+)"(\swidth="\d{1,3}")?(\sheight="\d{1,3}")?(\salt="[^"<>]*")?(\stitle="[^"<>]*")?\s?\/?>)$/i;
text = text.replace(/<[^<>]*>?/gi, function (tag) {
return (tag.match(okTags) || tag.match(okLinks) || tag.match(okImg)) ? tag : ""
})
1
A
답변
4
replace()
은 당신이 할 수
는 그들이 서로 다른되지 않습니다, 당신의 코드를 어떻게 작동하는지 확인하기 위해 설명서를 확인 매우 강력 preg_match() 것 preg_replace()
및 match()
로 대체 될 수 있습니다 콜백 기능을 사용하십시오.
2
HTML을 정규식으로 파싱하는 것처럼 보입니다.
그런 경우 PHP는 DOMDocument을 제공하며 이는 DOM 조작을 수행하는 데 매우 유용합니다. 당신 사용할 수 있습니다 HTML을 포함 문자열을 보장합니다.
도메인 특정 솔루션은 HTML Purifier입니다.
관련 문제
- 1. 다른 언어의 정적 변수에 해당하는 PHP는 무엇입니까?
- 2. Java Servlet Filter에 해당하는 PHP는 무엇입니까?
- 3. 이 코드에 문제가 있습니까?
- 4. 이 코드에 누수가 있습니까?
- 5. 이 코드에 문제가 있습니까?
- 6. 이 Makefile에 해당하는 Windows
- 7. 다음 ocamlyacc 코드에 해당하는 fsyacc는 무엇입니까?
- 8. C 코드에 상응하는 C#이 필요합니다
- 9. 이 코드에 대한 설명이 필요 - #
- 10. 이 preg_match 코드에 문제가 있습니까?
- 11. 이 CSS 코드에 대한 설명
- 12. 이 코드에 무슨 문제가 있습니까?
- 13. 이 PHP 코드에 오류가 있습니까?
- 14. 이 코드에 어떤 문제가 있습니까?
- 15. 이 PHP 코드에 문제가 있습니까?
- 16. 이 코드에 어떤 문제가 있습니까?
- 17. 이 자바 코드에 문제가 있습니까?
- 18. 이 SQL에 해당하는 HQL은 무엇입니까
- 19. 이 preg_replace에 해당하는 Java는 무엇입니까?
- 20. 쿠키에 값을 추가하려면이 C# 코드에 해당하는 Javascript가 필요합니다.
- 21. 이 C# 코드에 해당하는 VB.NET (ASCII 문자열을 16 진수로 변환)은 무엇입니까?
- 22. 더 빠른 플래시 또는 자바 스크립트는 무엇이겠습니까?
- 23. 이 두 줄의 PHP는 어떻게 다른가요?
- 24. PHP는 :이 코드를 실행하면 SimpleXML을 및 배열이
- 25. 이 PHP는 어떻게 간단하게 할 수 있습니까?
- 26. 이 코드에 klass가 필요한 이유는 무엇입니까?
- 27. 이 C++ 코드에 정의되지 않은 동작은 무엇입니까
- 28. Python Eval :이 코드에 어떤 문제가 있습니까?
- 29. 이 코드에 document.write을 (를) 쓸 수 없습니다.
- 30. 이 난 부분보기에서 만든 내 코드에
'preg_replace_callback()'이이 경우에 적절하게 대체됩니다. – mario
당신은 맞습니다 마리오, 추가 주셔서 감사합니다 – Ibu