var regexp = new RegExp("(" + pat.replace(new RegExp(' ', 'g'), "|") + ")", (false ? "" : "i") + "g");
не пойму как ее переписать чтобы регистр учитывался.
за регистр вроде i отвечает, только я в синтаксесе этом не совсем разобрался.
может подскажете?
Спустя 1 час, 52 минуты, 44 секунды (22.07.2011 - 20:42) killer8080 написал(а):
так он там уже есть, только не понял смысла выражения
это можно записать так
(false ? "" : "i")
это можно записать так
var regexp = new RegExp("(" + pat.replace(/ /g, "|") + ")", "ig");
Спустя 1 день, 19 часов, 8 минут, 6 секунд (24.07.2011 - 15:51) kuzroman написал(а):
Цитата (killer8080 @ 22.07.2011 - 17:42) |
так он там уже есть, только не понял смысла выражения(false ? "" : "i") это можно записать так var regexp = new RegExp("(" + pat.replace(/ /g, "|") + ")", "ig"); |
Доброго дня, да var regexp = new RegExp("(" + pat.replace(/ /g, "|") + ")", "ig"); работает действительно так же, но не могли бы вы сказать почему без i (когда я убираю i) перестает работать?
т.е. мне нужно чтобы регистр в моем случае учитывался.
А за регистронезависимость отвечает i,
значит если я убиру i то слова
Вперед и вперед
должны различаться.
или я неправ?
Но у меня когда я убираю i мой скрипт вообще перестает работать.
Вот собственно скрипт если он интереен:
jQuery.fn.highlight = function (pat) {
function innerHighlight(node, pat) {
var skip = 0;
if (node.nodeType == 3) {
// var regexp = new RegExp("(" + pat.replace(new RegExp(' ', 'g'), "|") + ")", (false ? "" : "i") + "g");
var regexp = new RegExp("(" + pat.replace(/ /g, "|") + ")", "ig");
var str = jQuery('<div></div>').text(node.data).html();
jQuery(node).replaceWith(str.replace(regexp, '<span class="highlight">$1</span>'));
} else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
for (var i = 0; i < node.childNodes.length; i++) {
innerHighlight(node.childNodes[i], pat);
}
}
return skip;
}
return this.each(function () {
innerHighlight(this, pat.toUpperCase());
});
};
jQuery.fn.removeHighlight = function () {
return this.find("span.highlight").each(function () {
this.parentNode.firstChild.nodeName;
with(this.parentNode) {
replaceChild(this.firstChild, this);
normalize();
}
}).end();
};
Спустя 2 часа, 19 минут, 30 секунд (24.07.2011 - 18:10) kuzroman написал(а):
Ладно вроде все заработало и на этом спасибо!
_____________
kuzroman@list.ru