Javascript.RU

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

Перенос по слогам
Я знаю что есть
Код:
    
hyphens: auto;
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
Но это работает только в мозиле и больше ни где.
Я нашел вот такую ссылку http://wiki.sawtech.ru/index.php/П...aScript_JQuery но не понимаю работает это решении или просто я что то то делаю не то.
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2022, 13:42
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Там есть вот такое
Перенос по слогам JavaScript JQuery
$.fn.rusHyphenate = function () {
	var all = '[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]',
		vowel = '[аеёиоуыэюя]',
		consonant = '[бвгджзклмнпрстфхцчшщ]',
		zn = '[йъь]',
		shy = '\xAD',
		hyp = [];

	hyp[0] = new RegExp('(' + zn + ')(' + all + all + ')', 'ig');
	hyp[1] = new RegExp('(' + vowel + ')(' + vowel + all + ')', 'ig');
	hyp[2] = new RegExp('(' + vowel + consonant + ')(' + consonant + vowel + ')', 'ig');
	hyp[3] = new RegExp('(' + consonant + vowel + ')(' + consonant + vowel + ')', 'ig');
	hyp[4] = new RegExp('(' + vowel + consonant + ')(' + consonant + consonant + vowel + ')', 'ig');
	hyp[5] = new RegExp('(' + vowel + consonant + consonant + ')(' + consonant + consonant + vowel + ')', 'ig');

	return this.each(function () {
		var text = $(this).html();

		for ( var i = 0; i <= 5; ++i ) {
			text = text.replace(hyp[i], '$1' + shy + '$2');
		}
		$(this).html(text);
	});
};


$(selector).rusHyphenate();


Вариант с обработкой длины слова
Чтобы переносы были только в длинных словах

$.fn.rusHyphenate = function ( options ) {
	options = $.extend({
		maxWordLength: 15, // максимальная длина слова
	}, options);

	var all       = '[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]',
	    vowel     = '[аеёиоуыэюя]',
	    consonant = '[бвгджзклмнпрстфхцчшщ]',
	    zn        = '[йъь]',
	    shy       = '\xAD',
	    hyp       = [];

	hyp[0] = new RegExp('(' + zn + ')(' + all + all + ')', 'ig');
	hyp[1] = new RegExp('(' + vowel + ')(' + vowel + all + ')', 'ig');
	hyp[2] = new RegExp('(' + vowel + consonant + ')(' + consonant + vowel + ')', 'ig');
	hyp[3] = new RegExp('(' + consonant + vowel + ')(' + consonant + vowel + ')', 'ig');
	hyp[4] = new RegExp('(' + vowel + consonant + ')(' + consonant + consonant + vowel + ')', 'ig');
	hyp[5] = new RegExp('(' + vowel + consonant + consonant + ')(' + consonant + consonant + vowel + ')', 'ig');

	return this.each(function () {
		var text = $(this).html(),
		    res  = '';

		text = text.split(' ');

		text.forEach(function ( word, i ) {
			if( word.length > options.maxWordLength ) {
				for ( var i = 0; i <= 5; ++i ) {
					word = word.replace(hyp[i], '$1' + shy + '$2');
				}
			}


			res += word + ' '
		})

		$(this).html(res);
	});
};



$(selector).rusHyphenate({maxWordLength: 10});
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2022, 14:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сергей Ракипов, если сможешь сам расставить тег <wbr> - сможешь переносить как захочешь...
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2022, 14:52
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

ksa,
Ну там тире не будет и это очень много что бы все расставить, если только программа какая то есть, и как тире делать
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2022, 14:59
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сергей Ракипов, какую задачу решаешь?
Что там за огромный текст, который нужно еще и по слогам переносить?
Ответить с цитированием
  #6 (permalink)  
Старый 02.08.2022, 15:23
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Да текста много, это вообще не вариант что бы расставлять переносы вы ручную тем более без тире.
Ответить с цитированием
  #7 (permalink)  
Старый 02.08.2022, 16:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сергей Ракипов,
есть плагины на эту тему, https://github.com/mnater/Hyphenopoly
https://www.npmjs.com/package/hyphen
но как с ними работать не знаю, нужен разбирающийся человек, там и там есть поддержка русского языка.
Ответить с цитированием
  #8 (permalink)  
Старый 02.08.2022, 23:26
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Зачем они вообще нужны? Если только очень узкая колонка.
Ответить с цитированием
  #9 (permalink)  
Старый 03.08.2022, 02:12
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

voraa,
Так вот в этом и проблема вот как будет при узком разрешении экрана



https://ibb.co/VWP7QXw
Ответить с цитированием
  #10 (permalink)  
Старый 03.08.2022, 03:16
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

рони,
Тоже не разобрался
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт переноса по слогам не работает life-life Элементы интерфейса 0 18.10.2017 17:19
Отправка данных аякс по Enter, перенос строки Enter+Ctrl shyxeroks Элементы интерфейса 1 30.03.2017 15:00
JQuery + перенос в восточных языках Goopy jQuery 4 15.06.2016 17:50
Перенос строк в Ext.grid.Panel khusamov ExtJS 11 10.04.2013 04:03
Отправка формы по ENTER (ajax) и перенос строки VEGA jQuery 18 01.03.2013 14:09