我正在用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