исключение из выборки атрибутов
имею вот такой скрипт для расстановки переносов
$(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, время: 12:23. |