Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите как смешать/вписать один текст в другой? (https://javascript.ru/forum/misc/63918-podskazhite-kak-smeshat-vpisat-odin-tekst-v-drugojj.html)

supergadgets 08.07.2016 03:21

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

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

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

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

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.



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



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

рони 08.07.2016 08:58

supergadgets,
взять текст, разбить на пробелы, вставить в массив случайно нужные фразы, соединить массив в строку пробелами, заменить прежний текст на эту строку.

supergadgets 08.07.2016 16:23

А может кто-то может пример скрипта накидать, если задача не очень сложная. Я в яве совсем нуб ((

warren buffet 08.07.2016 20:09

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

<!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:16

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

Про скрипт. Я вывел наружу длины текста и количество спама, но корреляцию для автоматического определения дистанции не нашел. Сами ищите. Еще можно рандомно ее задавать в некотором диапазоне.

supergadgets 09.07.2016 01:02

Всем спасибо


Часовой пояс GMT +3, время: 15:29.