javascript - how to remove Case insensitivitness while searching a text on page in jquery -
i working on search in text .actually searching text text .but facing problem in case sensitive .if search "n" work fine .but when search "n", convert "n" capital "n"and search .i don't know why occurring in searching..?.
here try..
function searchandhighlight(searchterm, selector) { if (searchterm) { //var wholewordonly = new regexp("\\g"+searchterm+"\\g","ig"); //matches whole word //var anycharacter = new regexp("\\g["+searchterm+"]\\g","ig"); //matches word of search chars characters var selector = selector || "#realtimecontents"; //use body selector if none provided var searchtermregex = new regexp(searchterm, "ig"); var matches = $(selector).text().match(searchtermregex); if (matches != null && matches.length > 0) { $('.highlighted').removeclass('highlighted'); //remove old search highlights //remove previous matches $span = $('#realtimecontents span'); $span.replacewith($span.html()); if (searchterm === "&") { searchterm = "&"; searchtermregex = new regexp(searchterm, "ig"); } $(selector).html($(selector).html().replace(searchtermregex, "<span class='match'>" + searchterm + "</span>")); $('.match:first').addclass('highlighted'); var = 0; $('.next_h').off('click').on('click', function () { i++; if (i >= $('.match').length) = 0; $('.match').removeclass('highlighted'); $('.match').eq(i).addclass('highlighted'); $('.ui-mobile-viewport').animate({ scrolltop: $('.match').eq(i).offset().top }, 300); }); $('.previous_h').off('click').on('click', function () { i--; if (i < 0) = $('.match').length - 1; $('.match').removeclass('highlighted'); $('.match').eq(i).addclass('highlighted'); $('.ui-mobile-viewport').animate({ scrolltop: $('.match').eq(i).offset().top }, 300); }); if ($('.highlighted:first').length) { //if match found, scroll first 1 appears $(window).scrolltop($('.highlighted:first').position().top); } return true; } } return false; } $(document).on('click', '.searchbuttonclicktext_h', function (event) { $(".highlighted").removeclass("highlighted").removeclass("match"); if (!searchandhighlight($('.textsearchvalue_h').val())) { alert("no results found"); } });
your problem following line:
$(selector).html($(selector).html().replace(searchtermregex, "<span class='match'>" + searchterm + "</span>"));
which replace matches searchterm (e.g. "n").
try replacing following replace matched:
$(selector).html($(selector).html().replace(searchtermregex, "<span class='match'>" + matches[0] + "</span>"));
if want stop search being case insensitive, drop i
regex.
var searchtermregex = new regexp(searchterm, "g");
Comments
Post a Comment