用javascript实现在array内搜索关键字,大小写不敏感,搜索到的相关结果中对应的关键字以红色标出,要运用到【var y = x.split(" ")】的方法把array中的一个个数据打散..写不出来,以下是惨不忍睹的代码,麻烦在此基础上改一下,拜谢!
function search()
{
var x = document.getElementById("keyword").value;
var z = x.toLowerCase();
if (z=="")
{
document.getElementById("para").innerHTML ="Please input keyword";
}
else
{
var name=["The Departed(2006)","Blood Diamond(2006) ","The Aviator(2004)","Catch Me If You Can(2002)","Titanic(1998)","Revolutionary Rd(2008)","J. Edgar(2011)","Inception(2011)"];
var y = "";
var len = name.length;
for (var i=0;i<len;i++)
{
var lower = name[i].toLowerCase();
var position = lower.indexOf(z);
if (position < 0)
{
continue;
}
y= y + name[i] + "<br>";
}
if (y!=="")
{
result=y;
}
else
{
result="No result found";
}
document.getElementById("para").innerHTML = result;

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function show(){
    init();
    var div=document.getElementById("test");
    var value=div.innerHTML;
    var inputvalue=document.getElementById("test2").value;
    inputvalue=inputvalue.split(/[\W]+/);
    inputvalue=inputvalue.join("|");
    var reg2=new RegExp("("+inputvalue+")","g");
    value=value.replace(reg2,'<font color="red">$1</font>');
    div.innerHTML=value;
    }
    function init(){
    var div=document.getElementById("test");
    div.innerHTML="just a  test,aa bb e,r,x";
    }
    window.onload=init;
    </script>
    </head><body>
    <div id="test">
    </div>
    <input type="text" id="test2" onchange="show()">
    </body>
    </html>
    这样试试