Jquery.autocomplete.js无法满足公司的需求,只好自己写了,在这里记录一下不区分大小写加粗关键词的方法; 如果谁有更好的方法,希望能分享一下^ _ ^; 如有错误的地方希望指正,谢谢!
fuction.js
/**
* 关键词加粗(不区分大小写)
* param String key 关键词
* param String str 检索到的内容
* return String newStr 加粗后的字符串
*/
var keywordToStrong = function(key, str)
{
var sChar = key[0];
var i=0;
var newStr = ''; //重新组全的字符串
while(i < str.length){
if(sChar == str[i] || sChar.toLowerCase() == str[i].toLowerCase()){ //直接比较或转换为小写比较
//如果首字符相符,则截取与关键词长度相同的子串
var tmp = str.substr(i, key.length);
if(tmp.length == key.length){
//子串与关键词长度相等
var same = true; //子串与关键词的比较结果,true为相同,false为不同
for(var j=0; j<key.length; j++){
if(key[j] != tmp[j] && key[j].toLowerCase() != tmp[j].toLowerCase()){ //子串与关键词每个字符一一进行比较
same = false;
break;
}
}
if(same){
//子串与关键词相同,为粗
newStr += '<strong>' + tmp + '</strong>';
}else{
//子串与关键词不相同,只取当前字符
newStr += str[i];
i++;
continue;
}
}else{
//子串与关键词长度不相等时,转换完成;
newStr += tmp;
return newStr;
}
i += key.length;
}else{
newStr += str[i];
i++;
}
}
return newStr;
}