2010-02-22 4 views
3

Я программирую проверку орфографии в Javascript в сочетании с словарем OpenOffice, и у меня есть серьезная проблема.Как найти слово, которое заключено в Html-теги?

Я могу найти целые слова, используя RegEx, но если слово выглядит как prog<b>ram</b>ing, я могу найти его, если я удалю все html-теги с помощью метода .text() из jQuery. Но как я могу заменить это слово и перестроить исходную структуру html?

Spellchecker.com делает это очень умно - проверка орфографии распознает даже такие слова, как prog<b>ram</b>ing, если они написаны с ошибками!

+1

Со ссылкой на использование регулярных выражений для обработки HTML, я предлагаю найти другой способ: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained -tags/1732454 # 1732454 –

ответ

0

Я бы использовал что-то, чтобы вытащить любой HTML, чтобы вы имели дело с открытым текстом. Я не могу говорить о каких-либо инструментах, подобных этому в javascript, но я уверен, что они существуют. Если вы можете найти что-то для «вычистки» html из вашего .text(), вы можете запустить поиск таким образом.

попробовать что-то вроде этого: http://metacpan.org/pod/HTML::Scrubber

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(/(<[^>]+>)/, ''); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^