如何找到从Html标签附上的Word?

时间:2010-02-22 10:41:54

标签: javascript html regex spell-checking

我正在使用Javascript编写拼写检查器并结合OpenOffice字典,我遇到了严重的问题。

我可以使用RegEx找到整个单词,但如果单词看起来像prog<b>ram</b>ing,我可以找到它,如果我从jQuery中删除所有html标签.text()方法。但是如何替换这个单词并重建原始的html结构呢?

Spellchecker.com非常聪明 - 如果拼写错误,拼写检查会识别出prog<b>ram</b>ing之类的字词!

2 个答案:

答案 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,你可以用这种方式进行搜索。

尝试这样的事情:http://metacpan.org/pod/HTML::Scrubber