我正在使用Javascript编写拼写检查器并结合OpenOffice字典,我遇到了严重的问题。
我可以使用RegEx找到整个单词,但如果单词看起来像prog<b>ram</b>ing
,我可以找到它,如果我从jQuery中删除所有html标签.text()
方法。但是如何替换这个单词并重建原始的html结构呢?
Spellchecker.com非常聪明 - 如果拼写错误,拼写检查会识别出prog<b>ram</b>ing
之类的字词!
答案 0 :(得分:2)
/([\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(/(<[^>]+>)/, '');
}
答案 1 :(得分:0)
我会用一些东西来提取任何HTML,以便你处理明文。我不能在javascript中说任何这样的工具,但我确信它们存在。如果你能找到一些东西来“擦除”你的.text()中的html,你可以用这种方式进行搜索。