我正在用Javascript和OpenOffice詞典編寫一個拼寫檢查器,我遇到了一個嚴重的問題。如何查找從Html標記中包含的單詞?
我可以使用RegEx找到整個單詞,但如果單詞看起來像prog<b>ram</b>ing
,我可以找到它,如果我從jQuery中使用.text()
方法刪除所有的html標籤。但我怎樣才能替換這個詞並重建原始的html結構?
Spellchecker.com它非常巧妙 - 拼寫檢查可識別像拼寫錯誤的文字,如prog<b>ram</b>ing
!
我正在用Javascript和OpenOffice詞典編寫一個拼寫檢查器,我遇到了一個嚴重的問題。如何查找從Html標記中包含的單詞?
我可以使用RegEx找到整個單詞,但如果單詞看起來像prog<b>ram</b>ing
,我可以找到它,如果我從jQuery中使用.text()
方法刪除所有的html標籤。但我怎樣才能替換這個詞並重建原始的html結構?
Spellchecker.com它非常巧妙 - 拼寫檢查可識別像拼寫錯誤的文字,如prog<b>ram</b>ing
!
我會用的東西拉出任何HTML,這樣你正在處理明文。我不能說這樣的任何工具在JavaScript中,但我相信他們存在。如果你可以找到某些東西來'清理'你的.text()中的html,你可以用這種方式進行搜索。
/([\s>"'])prog(<[^>]+>)ram(<[^>]+>)ing([\s\.,:;"'<])/g
將匹配您的例子
所以大致有以下的正則表達式將查找的單詞的所有實例,即使是那些破碎的HTML
var regExp = new RegExp('([\s>"\'])' + word.split('').join('(<[^>]+>)') + '([\s\.,:;"\'<])',g);
上帝知道這將如何幫助你建立一個拼寫檢查器。我懷疑在拼寫檢查中使用的方法更像是「假設沒有使用html進行拼寫檢查」,並且如果某個單詞中有html,則使用類似下面的方法將其去掉,然後對所得到的字符串進行拼寫檢查:
String.prototype.stripHtml = function() {
return this.replace(/(<[^>]+>)/, '');
}
參考使用正則表達式來處理HTML,我建議尋找另一種方式:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained標籤都有效/ 1732454#1732454 – 2010-02-22 11:30:37