Поиск определённых слов в контенте
Имеется небольшой скрипт, функция, которая ищет в контенте определённые слова и выделяет их. При наведении на выделенные слова показывается баннер, по образу и подобию как тут. Функция написана и даже работает, но возникла одна неприятная неожиданность, поиск ведётся только по точному соответствию слов. Решил обратиться к тем у кого опыта работы с JS по больше чем мой, так как Я с JS занимаюсь буквально 2 месяца)))
Пытался разобраться с регулярными выражениями, но что то не получается, народ, подскажите, как переписать функцию, чтоб выделяла не по точному соответствию, тоесть, вводим слово для поиска "привет" и функция ищет в контенте не только "привет", но также "Привет", "ПРИВЕТ", "приВет" Код прилагается:
function searchTextOnPage() {
var toFind = document.getElementById("qwer").innerHTML;
document.getElementById("qwe").innerHTML = document.getElementById("qwe").innerHTML.replace(eval("/"+toFind+"/g"), "<b>"+toFind+"</b>");
}
|
Используйте для регэкспа флаг i (игнорирование регистра).
/regexp/i |
exec,
а где именно его использовать? пробовал в строке ("/"+toFind+"/g") добавить, получилось это ("/"+toFind+"/gi") по сути работает, но только он мне заглавные меняет на строчные, а хотелось бы чтоб какой первоначально был регистр, тот и оставался |
function preg_quote( str ) { // Quote regular expression characters
//
// + original by: booeyOH
// + improved by: Ates Goral ([url]http://magnetiq.com[/url])
return str.replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, "\\$1");
}
function searchTextOnPage() {
var toFind = document.getElementById('qwer').innerHTML,
holder = document.getElementById('qwe');
holder.innerHTML = holder.innerHTML.replace(new RegExp('('+preg_quote(toFind)+')', 'ig'), '<b>$1</b>');
}
|
e1f,
ты действительно Профессор! Спасибо!!! а можно ещё небольшое дополнение к коду? чтоб допустим скрипт искал и выделял не только с разными регистрами, а допустим где встречаются слова в которых есть содержимое "привет", ну например чтоб ещё искал слова такие как "самПривет", "приветИк". |
вот так и помогай людям.сразу на шею сядут.
поэтому я мудак, зато не даю садится на шею себе |
| Часовой пояс GMT +3, время: 07:56. |