как обернуть слова в тексте в тег strong
Добрый день есть слова в массиве или их часть. как можно обернуть все слова в тексте в тег strong, но если это часть слова то выделить все слово, если слова находятся рядом то выделить их оба
Например массив содержит следующие слова: слов предложения из просто Есть текст простой текст словосочетание из предложения в итоге должно обернуть "простой" и "словосочетание из предложения" в тег strong. |
глубина схожести какая должна быть?
Однокоренные слова. Только окончания разные. Просто совпадения по нескольким символам |
prog77,
<style type="text/css"> strong{ border: 2px #0000FF solid; border-radius: 8px; padding: 2px 8px; } </style> <script> var a = "слов|предложения|из|просто", b; var reg = new RegExp("^("+a+")"); var str = "простой текст словосочетание из предложения" str = str.split(/\s+/).map(function(a,i,c) { reg.lastIndex=0; if(reg.test(a)&&!b) {a = "<strong>" + a; b=true}; reg.lastIndex=0; if((!c[i+1] && b)||(!reg.test(c[i+1]) && b)) {a += "</strong>";b=false}; return a }).join(" "); document.write(str) </script> |
Цитата:
например часть слова розыгр разыгр на слова розыгрыши, розыгрыш, разыграем, В примере что я вам дал первый раз конечно слов должно обернуть слово, словах, слов, но никак не словосочетание, только как это реализовать, у меня даже в голове не укладывается, это нужно как-то учитывать окончания что-ли, если вы делали похожую задачу буду признателен если кините пример. В любом случае я могу изменить свои данные под приведенный пример, например вместо разыгр могу сделать разыгра, то есть могу сделать из одного слова несколько вариантов что бы подогнать только под окончание что-ли, только как узнать что это только окончание, а не составное слово. Спасибо |
рони, спасибо если что буду Ваш вариант использовать
|
prog77,
чем вариант в пост №3 не устроил, и что вам нужно пример сделайте. ваше описание пост №4 не осилил |
рони,
ваш пост полностью выполняет поставленную мной предыдущую задачу, но j0hnik, спросил одну вещь "Только окончания разные" в вашем случае это однокоренные слова, а мне уже нужно только с разными окончаниями. Да 4 пост немного за мудрено написал. Я имел ввиду что могу подогнать все слова в массив. Сейчас у меня в массиве есть например розыгр (розыгр аем)(розыгр ают) разыгр (разыгр аем)(разыгр ают) а я могу сделать розыгра (розыгра ем)(розыгра ют) разыгра (разыгра ем)(разыгра ют) то есть сократить до нужного окончания, но как понять что это окончание а не однокоренное слово. Я в смысле как сделать что бы "словосочетание" не учитывалось потому что оно однокоренное со словом "слов". Как сделать выделение только с измененными окончаниями "слова","словах" но не "словосочетание". |
prog77,
не осилил, видимо бесполезно, но спасибо, больше не надо. |
Не знаю может просто делать проверку если найденное слово больше искомого более чем на 3 символа значит не оборачивать в strong, это единственное что в голову приходит.
|
prog77,
Цитата:
А как насчет приставок? Например, пословица? |
Часовой пояс GMT +3, время: 20:37. |