我需要在HTML頁面上找到匹配特定正則表達式的所有文本片段(也就是說,我需要忽略標籤以便'< span>First name: < /span>< br/>< b>John< /b>'
匹配'First name: John'
),並突出顯示這些找到的片段裝飾新的元素和應用自定義CSS樣式),並能夠找到這些片段,例如能夠將這些視圖滾動到視圖中。 功能與Skype瀏覽器插件使用頁面上的電話號碼相似。查找包含與正則表達式匹配的字符串的DOM元素
回答
你有沒有嘗試這樣的事情?
document.body.innerHTML.replace(/<\/?[^>]+>/g, '')
這不僅會破壞已動態添加的每個偵聽器,而且可能會在不同瀏覽器中以不同方式將元素,屬性和屬性搞亂,從而導致任何頁面內容不平凡。 – RobG
我需要保留DOM中搜索結果所在位置的信息,或者我可以執行document.body.innerText.match() - 而不是我需要的信息。 –
您可以遞歸走在DOM查看元素的textContent或的innerText財產(如適用),或者你可以使用循環通過以上的getElementsByTagName 返回集合。無論哪種方式,一旦你確定了文本和父元素,你需要弄清楚如何替換它。
如果字符串拆分爲一個或多個othere元素什麼是你在更換文檔結構的要求?
我認爲使用以節點爲中心的方法與以字符串爲中心的方法會產生更多的可移植性。此外,這是大多數人遇到麻煩的方面:)。 – 2011-10-12 23:10:06
是的,但OP希望字符串即使分成多個元素,所以只看文本節點也不行。我不知道他打算如何處理拆分字符串,但至少上面的方法會找到具有整個字符串的最接近的祖先。 – RobG
你可以使用jQuery selectors獲取包含John
的<b>
標籤包含First name:
一個<span>
標籤後而來,然後例如應用樣式:
$("span:contains('First name:') ~ b:contains('John')").css('color','red');
這裏是一個正在運行的例子:http://jsfiddle.net/XzwNj/
這只是一個例子,而不是具體的例子 –
- 1. 匹配包含 - ,. $ \ /的字符串與正則表達式
- 2. 檢查字符串是否包含正則表達式匹配
- 3. 包含元字符的正則表達式和匹配URL
- 4. 包含正則表達式匹配的拆分字符串
- 5. 正則表達式,匹配的字符串也包含括號
- 6. 正則表達式匹配包含括號的字符串
- 7. 正則表達式:匹配包含字符串的<tr>
- 8. 如何匹配正則表達式與包含通配符的字符串?
- 9. 如何找出與正則表達式匹配的字符串
- 10. 正則表達式/ Perl來匹配包含字符串
- 11. 正則表達式匹配:不包含在一個字符串
- 12. 正則表達式匹配字符串不包含其他子
- 13. C#正則表達式匹配不包含某個字符串的字符串?
- 14. 如何查找字符串包含正則表達式的特殊字符與正則表達式
- 15. 查找不匹配字符串中的字符與正則表達式?
- 16. 正則表達式來查找元素包含一個字符串
- 17. 查找與給定正則表達式不匹配的字符
- 18. 與包含冒號的正則表達式匹配的字符串
- 19. 正則表達式來查找匹配列表中的元素
- 20. 正則表達式 - 匹配字符串不包含指定字符串字面
- 21. 正則表達式則表達式匹配的字符串
- 22. 正則表達式正則表達式匹配字符串
- 23. 匹配匹配字符串的正則表達式的子串
- 24. 速度優化的java字符串包含與正則表達式匹配
- 25. 正則表達式匹配字符串
- 26. 正則表達式匹配字符串
- 27. 正則表達式匹配字符串
- 28. 正則表達式匹配字符串
- 29. 正則表達式匹配字符串
- 30. 正則表達式匹配字符串
你有沒有工作的代碼,或者這是一個「給我一個codez」的問題?你有什麼嘗試? – CanSpice
我需要找到方法,我可以做編碼。如果它已經解決並且代碼可用 - 甚至更好。 –
看來jQuery可以用with:contains()選擇器來做到這一點。也許它的邏輯可以重新定義爲使用正則表達式搜索,而不是子字符串搜索。 –