Resaltar palabras dentro de la cadena

Obtuve cierta cadena y quiero resaltar la subcadena escrita en la entrada de texto.

Aquí hay un violín: http://jsfiddle.net/rFGWZ/17/

Solo funciona bien, cuando escribo la cadena inicial, pero cuando escribo fe. 15 en la entrada, no resalta el 15 sino el 21 lugar … siempre está resaltando los números al principio, así que ¿alguien podría ayudarme a modificarlo, así que resaltará la cadena que escribo en la entrada de texto?

Puedes usar esto:

 firstCell.html(id.replace(value, ''+value+'')); 

en lugar de

 firstCell.html($("").addClass("highlight").text(id.slice(0, value.length))); firstCell.append(id.slice(value.length, id.length)); 

Demostración: http://jsfiddle.net/qgBt8/

EDITAR: versión no sensible a mayúsculas

Usaría una expresión regular para resolver esto. Esto también tiene en cuenta el caso de los personajes.

jsFiddle

 $("#search").on("keyup", function() { var value = $(this).val(); $("table tr").each(function(index) { if (index !== 0) { $row = $(this); var firstCell = $row.children("td:first"); var id = $row.children("td:first").text(); if (id.indexOf(value) === -1) { $row.children("td:first").text(id); $row.hide(); } else { var re = new RegExp(value, "g"); //global replace firstCell.html(id.replace(re, "" + value + ""));//replace all instances of the characters $row.show(); } } }); });​