Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.07.2016, 03:21
Интересующийся
Отправить личное сообщение для supergadgets Посмотреть профиль Найти все сообщения от supergadgets
 
Регистрация: 08.07.2016
Сообщений: 15

Подскажите как смешать/вписать один текст в другой?
Доброго времени суток.

Может кто-то подскажет где, как или чем можно автоматически вписать список ключевых слов/фраз в заранее написаный текст.

Речь идет не о смешивании линий текста, а именно о вписывании ключевиков в текст не смешивая сам текст.

Например есть кусок текста :

With a dedicated photo button and the ability to shoot wide-angle 12 megapixel photos at speeds up to 30 frames per second, VIRB XE is designed to get the image. You can even capture photos while recording video. VIRB XE can also be set to automatically capture photos over long periods of time at customizable intervals up to 120 seconds. With Extended timelapse, VIRB XE will sleep between shots, allowing you to maximize your battery life for exceptionally long captures.

И список ключевых фраз:

buy action camera

action camera price

action camera feature



Результат должен бытк таким:

With a dedicated photo button and the ability to shoot wide-angle 12 megapixel photos buy action camera at speeds up to 30 frames per second, VIRB XE is designed to get the image. You can action camera price even capture photos while recording video. VIRB XE can also be set to automatically capture photos over long periods of time at customizable intervals up to 120 seconds. With Extended timelapse, VIRB XE will sleep between shots, action camera feature allowing you to maximize your battery life for exceptionally long captures.



Места где будут вписаны ключевики могут быть выбраны случайным образом/



Есть какие-то решения?

Последний раз редактировалось supergadgets, 08.07.2016 в 20:47.
Ответить с цитированием
  #2 (permalink)  
Старый 08.07.2016, 08:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

supergadgets,
взять текст, разбить на пробелы, вставить в массив случайно нужные фразы, соединить массив в строку пробелами, заменить прежний текст на эту строку.
Ответить с цитированием
  #3 (permalink)  
Старый 08.07.2016, 16:23
Интересующийся
Отправить личное сообщение для supergadgets Посмотреть профиль Найти все сообщения от supergadgets
 
Регистрация: 08.07.2016
Сообщений: 15

А может кто-то может пример скрипта накидать, если задача не очень сложная. Я в яве совсем нуб ((
Ответить с цитированием
  #4 (permalink)  
Старый 08.07.2016, 20:09
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Да пусть заспамит все ПСы, так им и надо. )))

<!DOCTYPE html><html lang="ru" dir="ltr"><head><meta charset="utf-8"></head><body>

<p id="original">With a dedicated photo button and the ability to shoot wide-angle 12 megapixel photos at speeds up to 30 frames per second, VIRB XE is designed to get the image. You can even capture photos while recording video. VIRB XE can also be set to automatically capture photos over long periods of time at customizable intervals up to 120 seconds. With Extended timelapse, VIRB XE will sleep between shots, allowing you to maximize your battery life for exceptionally long captures.</p><p id="result"></p><script>

var text = document.getElementById('original').textContent;

keys=[
	'buy action camera',
	'action camera price',
	'action camera feature'
],

tag='<b>', 
etag='</b>',

len=text.length,
length=keys.length,

start = 0,
dist = distance = 120,

result='';

for(var cnt=0; cnt<length; cnt++){

	for(var ptr=dist; ptr<len; ptr++){
	
		if(ptr>dist && text.charAt(ptr)==' ' && text.charAt(ptr-1)!='.'){
		
			result+=text.substring(start,ptr) + tag + ' ' + keys[cnt] + etag + ' ';
			
			start = ptr;
			
			dist+=distance;
			
			break;
			
		}
	
	}

}

result+=text.substring(start,len);

document.getElementById('result').innerHTML=result;

</script>

</body>
</html>

Последний раз редактировалось warren buffet, 08.07.2016 в 20:22.
Ответить с цитированием
  #5 (permalink)  
Старый 08.07.2016, 20:16
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Это олд скул, разбирать строки в циклах. Я в одном фрейморке подсмотрел, как чувак компрессирует коды скриптов и стилей перебирая текст по буквам и понял, почему народ думает про разбиение на массив и про реги. Потому что в циклах запутаешься и вообще они для всех трудные. А вот тут можете потренироваться http://firepegs.com/_ab/_abbru.html как следует.

Про скрипт. Я вывел наружу длины текста и количество спама, но корреляцию для автоматического определения дистанции не нашел. Сами ищите. Еще можно рандомно ее задавать в некотором диапазоне.
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2016, 01:02
Интересующийся
Отправить личное сообщение для supergadgets Посмотреть профиль Найти все сообщения от supergadgets
 
Регистрация: 08.07.2016
Сообщений: 15

Всем спасибо

Последний раз редактировалось supergadgets, 25.07.2016 в 12:45.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как отобразить текст. potkin Общие вопросы Javascript 17 26.10.2017 15:09
Подскажите, как сюда прикрутить ajax? drkrol jQuery 9 25.09.2015 20:47
Подскажите как поступить. merzavchick jQuery 9 24.08.2012 23:57
Не правильно работает прокрутка, подскажите как сделать правильно? denfer12 Общие вопросы Javascript 0 09.05.2012 00:34
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42