![](/img/trans.png)
[英]Regex - how to find a word not enclosed by html tags or between them
[英]How to find a Word that is enclosed from Html Tags?
我正在使用Javascript編寫拼寫檢查器並結合OpenOffice字典,我遇到了一個嚴重的問題。
我可以使用RegEx找到整個單詞,但如果單詞看起來像prog<b>ram</b>ing
,我可以找到它,如果我從jQuery中刪除所有帶有.text()
方法的html標簽。 但是如何替換這個單詞並重建原始的html結構呢?
Spellchecker.com非常巧妙地進行 - 拼寫檢查甚至可以識別像prog<b>ram</b>ing
這樣的單詞,如果拼寫錯誤的話!
/([\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,以便你處理明文。 我不能在javascript中說任何這樣的工具,但我確信它們存在。 如果你能找到一些東西來“擦除”你的.text()中的html,你可以用這種方式進行搜索。
嘗試這樣的事情: http : //metacpan.org/pod/HTML :: Scrubber
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.