2014-03-04 3 views
0

저는 JavaScript가 아주 새로워서 로그를 구문 분석하고 무언가를 필터링하려고합니다.js를 사용하여 로그를 구문 분석하고 무언가를 필터링하십시오.

v=5,ci=3,si=60,sv=1,ss=active,es=-,ai=a23-369b-4da3-b2da-630aee75f8c5,ip='99.114.107.39',rm=GET,rv=HTTP/1.1,rs=200,rt=0.787020,rr='/tag/febe1eab436e98eb4ed3711870496c91/st.js?l=http%3A%2F%2Fwww.michaels.com%2Fv 

출력은 라인별로 ,에 분할, 선으로 인쇄 또한 내가 필요하지 않은 뭔가를 필터링해야합니다 로그는 것 같습니다. 예를 들면, 나는 단지 iprr 속성을 필요로하기 때문에 출력과 같아야합니다

ip='99.114.107.39' 
rr='/tag/febe1eab436e98eb4ed3711870496c91/st.js?l=http%3A%2F%2Fwww.michaels.com%2Fv 

내가 따르고있는 코드 만이 작동하지 않습니다

<!doctype html> 
<html> 
<head> 
<title>reading file</title> 
    <script> 
     function readText(obj){ 
      var file = obj.files[0], 
      div=document.getElementById('main'); 
      if(file){ 
       div.innerHTML=''; 
       var reader = new FileReader(); 
       reader.onerror = function(event){ 
        div.innerHTML='The file can\'t be read! Error ' + event.target.error.code; 
       } 
       reader.onload = function(event){ 
        var cont = event.target.result.split(','); 
        for(var i=0; i<cont.length; i++){ 
         var name = cont.split('='); 
         if (name[0]==="rr") { 
          div.innerHTML+=cont[i]+'<br />'; 
         } 

        } 
       } 
      reader.readAsText(file); 
      } 
     } 

    window.onload=function(){ 
     document.getElementById('ff').onchange=function(){readText(this);} 
    } 

    </script> 
</head> 
<body> 
    <input type="file" id="ff" /> 
    <div id="main"></div> 
</body> 

</html> 

답변

0

사용 split()의 자바 스크립트 :

DEMO

예 :

window.onload = function() { 
    var text = "v=5,ci=3,si=60,sv=1,ss=active,es=-,ai=a23-369b-4da3-b2da-630aee75f8c5,ip='99.114.107.39',rm=GET,rv=HTTP/1.1,rs=200,rt=0.787020,rr='/tag/febe1eab436e98eb4ed3711870496c91/st.js?l=http%3A%2F%2Fwww.michaels.com%2Fv"; 

    var ip = '', 
     rr = ''; 
    var splits = text.split(','); 

    for (var i = 0; i < splits.length; i++) { 
     if (splits[i].indexOf('ip') > -1) 
      ip = splits[i]; 
     else if (splits[i].indexOf('rr') > -1) 
      rr = splits[i]; 
    } 

    document.getElementById('divIp').innerHTML = ip; 
    document.getElementById('divRr').innerHTML = rr; 

}; 
관련 문제