исключение из выборки атрибутов
имею вот такой скрипт для расстановки переносов
$(document).ready(function() { $.fn.hyphenate = function() { var all = "[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]", glas = "[аеёиоуыэю\я]", sogl = "[бвгджзклмнпрстфхцчшщ]", zn = "[йъь]", shy = "\xAD", re = []; re[1] = new RegExp("("+zn+")("+all+all+")","ig"); re[2] = new RegExp("("+glas+")("+glas+all+")","ig"); re[3] = new RegExp("("+glas+sogl+")("+sogl+glas+")","ig"); re[4] = new RegExp("("+sogl+glas+")("+sogl+glas+")","ig"); re[5] = new RegExp("("+glas+sogl+")("+sogl+sogl+glas+")","ig"); re[6] = new RegExp("("+glas+sogl+sogl+")("+sogl+sogl+glas+")","ig"); return this.each(function() { var text = $(this).html(); for (var i = 1; i < 7; ++i) { text = text.replace(re[i], "$1"+shy+"$2"); } $(this).html(text); }); }; $(function(){ $('p, h1, h2, h3, h4, h5, h6, a').hyphenate(); }); }); всё бы хорошо, но он вставляет переносы даже в атрибуты картинок которые вложены в тэг <a> как исключить из выборки атрибуты ссылок/картинок? |
Тут два пути решения которые мне лично приходят на ум.
|
Расстановка переносов в html тексте на русском языке
capau,
для данного варианта достаточно указать блок который нужно обработать было $('p, h1, h2, h3, h4, h5, h6, a').hyphenate(); можно сейчас $("body").hyphenate(); $.fn.hyphenate = function() { var all = "[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]", glas = "[аеёиоуыэю\я]", sogl = "[бвгджзклмнпрстфхцчшщ]", zn = "[йъь]", shy = "\xAD", re = [ new RegExp("(" + zn + ")(" + all + all + ")", "ig"), new RegExp("(" + glas + ")(" + glas + all + ")", "ig"), new RegExp("(" + glas + sogl + ")(" + sogl + glas + ")", "ig"), new RegExp("(" + sogl + glas + ")(" + sogl + glas + ")", "ig"), new RegExp("(" + glas + sogl + ")(" + sogl + sogl + glas + ")", "ig"), new RegExp("(" + glas + sogl + sogl + ")(" + sogl + sogl + glas + ")", "ig") ]; return this.each(function() { $(this).contents().filter(function() { this.nodeType == 1 && $(this).hyphenate(); return this.nodeType == 3; }).each(function(i, el) { re.forEach(function(reg) { el.data = el.data.replace(reg, "$1" + shy + "$2"); }) }); }); }; |
Часовой пояс GMT +3, время: 19:21. |