Search

3/24/2008

dynamic regexp & highlight

http://chunghe.googlecode.com/svn/trunk/experiment/regexp.htm - 由於每次要 match 的 input value 不是固定的,所以 new 一個 RegExp,目前沒有其他的寫法,另外每次都要移除上次的highlight,這邊的作法是把所有的 html tag strip掉,也可以把原來的字串存起來。


li = document.getElementById('u').getElementsByTagName('li');
t = document.getElementById('t');
b = document.getElementById('b');
string.prototype.stripTags = function(){
return this.replace(/<\/?[^>]+>/gi, '');
}
b.onclick = function(){
var value = t.value;
var pattern = new RegExp(value, 'gi');
for(var i=0; i<li.length; i++){
// strip html tags.
li[i].innerHTML = li[i].innerHTML.stripTags;
li[i].innerHTML = li[i].innerHTML.replace(pattern, '<b>'+value+'</b>');
}
}

沒有留言: