Показать сообщение отдельно
  #1 (permalink)  
Старый Вчера, 14:24
Кандидат Javascript-наук
Отправить личное сообщение для sashgera Посмотреть профиль Найти все сообщения от sashgera
 
Регистрация: 20.09.2011
Сообщений: 145

Плагин для переноса слов по слогам
Здравствуйте
Нашел на github плагин для переноса слов по слогам
Немного изменил плагин, что бы перенос слов был и в латинице
RusLatA - добавил буквы английского алфавита
RusLatV - добавил гласные буквы английского алфавита
RusLatN - добавил согласные буквы английского алфавита

Но теперь появилась такая проблема - в тексте есть див '#line_break', который используется в качестве разделителя и стили этого дива игнорируются
если убрать из RusLatV буквы английского алфавита (aeiou), тогда все норм, стили дива выполняются
Код:
<style type="text/css">
#test{
	width:110px;
	height:300px;
	background:#CF9;
	text-align:justify;
}
#line_break{
	width:100%;
	height:1px;
	font-size:1px;
	margin-top:3px;
	border-top:1px dotted currentColor;
}
</style>

<button onclick="transfer();">перенос текста</button>

<div id="test">
    проверка переноса слов латиницы и Cyrillic по слогам
    <div id='line_break'></div>
    test переноса слов после разделителя
</div>

<script type="text/javascript">
$.fn.hyphenate = function(){
	var RusLatA = "[abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя]";
	var RusLatV = "[aeiouаеёиоуыэю\я]";
	var RusLatN = "[bcdfghjklmnpqrstvwxyzбвгджзклмнпрстфхцчшщ]";
	var RusLatX = "[йъь]";
	var Hyphen = "\xAD";
	var re1 = new RegExp("("+RusLatX+")("+RusLatA+RusLatA+")","ig");
	var re2 = new RegExp("("+RusLatV+")("+RusLatV+RusLatA+")","ig");
	var re3 = new RegExp("("+RusLatV+RusLatN+")("+RusLatN+RusLatV+")","ig");
	var re4 = new RegExp("("+RusLatN+RusLatV+")("+RusLatN+RusLatV+")","ig");
	var re5 = new RegExp("("+RusLatV+RusLatN+")("+RusLatN+RusLatN+RusLatV+")","ig");
	var re6 = new RegExp("("+RusLatV+RusLatN+RusLatN+")("+RusLatN+RusLatN+RusLatV+")","ig");
	this.each(function(){
		var text=$(this).html();
		text = text.replace(re1, "$1"+Hyphen+"$2");
		text = text.replace(re2, "$1"+Hyphen+"$2");
		text = text.replace(re3, "$1"+Hyphen+"$2");
		text = text.replace(re4, "$1"+Hyphen+"$2");
		text = text.replace(re5, "$1"+Hyphen+"$2");
		text = text.replace(re6, "$1"+Hyphen+"$2");
		$(this).html(text);
	});
};

function transfer(){
	$("#test").hyphenate();
}
</script>
Ответить с цитированием