웹 애플리케이션을 개발 중입니다. 기사를 빨리 검색 할 수있는 기능이 있습니다. 두 단어 구조에서는태그 안의 텍스트를 강조 표시하는 방법은 무엇입니까?
이다 : AJAX 의해 페치 아티클
- 페이지
- 전역 배열 (JSON, 100-150 항목). (필드 : ID, 제목, 스 니펫). 제목 & 스 니펫에는 간단한 스타일 마크 업 태그가 포함될 수 있습니다.
그래서, 때 팝업 - 빠른 검색 필드에서 사용자 유형의 쿼리, 응용 프로그램
- 전역 배열에서 검색
- 만약 발견 일치,
push
(캐시) 임시 검색 결과 배열 - 강조 표시합니다 임시직과 일치합니다. 결과 배열 및 사용자에게 보여주기
원본 배열은 수정되지 않았습니다.
Currenty 나는 원시 String.indexOf
를 사용하고 있지만, html 태그 텍스트 (아래 예)를 통해 포맷 내에서 텍스트를 일치하지 않을 수 있습니다
질문 정규식 패턴에 관한 것입니다. 분명히 RegEx를 사용하여 DOM을 조작하는 것은 좋지 않으며 아래 결과가 의미 상 정확하지는 않지만 이 필요합니다.이 필요합니다.
예를 들어: 우리는 이런 일이 :
<ul><li>Item <i><span style="color:red">Y</span></i></li></ul>
을 우리는 결과를 기대하고, 쿼리 e
을 강조해야합니다 ... It<em>e</em>m ...
을하지만, 사용 사소한 replace(/e/ig, '<em>$&</em>')
경우도 style="color:red"
에서 e
을 대체합니다.
즉 태그의 단어를 터치하지 않는 RegEx 패턴은 무엇입니까?
두 번째 예 : 우리는 그래서 결과가 <ul><li><em>Item <i><span style="color:red">Y</em></span></i></li></ul>
"RegEx를 사용하는 것이 좋지 않다는 것을 분명히 이해하고 있습니다"... 아니, 분명히하지 않습니다. HTML 파서를 사용하십시오. – ocodo