[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регулярки в js
kuzroman
подскажите есть такая переменная

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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.