2009-06-01 10 views
1

단락과 빈 줄로 구성된 일반 텍스트 파일이 Ajax를 통해 배열로로드됩니다. 그런 배열은 다음 n 개의 요소를 나타내는 다양한 요소에 키워드에 대한 다양한 테스트로, 루프 쓰루 넣어 배열 요소에 새로운 행만 포함되어 있는지 확인하는 방법?

var infoArray = new Array(); 
infoArray = response.split("\n"); 

특히 처리 얻을

:이 배열은 다음과 같은 새로운 라인에 의해 소자로 분할 방법. 대부분 요소는 다음과 같이 출력됩니다.

 
    strMsg += '<li>' + infoArray[i] + '</li>'; 

문제는 텍스트 파일의 빈 줄도 배열 요소에 저장됩니다. 그런 다음 빈 목록 항목이 출력되고 눈에 띄게 틀립니다.

배열 요소가 비어 있는지 또는 줄 바꿈 문자가 들어 있는지 확인하기위한 테스트 조건이 필요합니다. 적용 할 수 있는지 잘 모르겠습니다. 게다가 서버가 버그가있어서 때로는 새로운 정보를로드하는 데 몇 분이 걸리기 때문에 최신 코드를 새로 고칠 지 확신 할 수없는 경우가 있습니다.

 

    if (!(infoArray[i].substring(0,0) == '')) { /* process output */ } 
    if (!(infoArray[i].substring(0,1) == '\n')) { /* process output */ } 
    if (!(infoArray[i].substring(0,0) == '\n')) { /* process output */ } 
    if (!(infoArray[i].substring(0,1) == /\n/)) { /* process output */ } 
    if (!(infoArray[i].substring(0,1) == /\n/)) { /* process output */ } 
    if (!(infoArray[i].substring(0,1) == /\n|\s*\n/)) { /* process output */ } 
    if (!(infoArray[i].IsEmpty())) { /* process output */ } 

    var tempString = infoArray[i].toString(); 
    if (!(tempString.IsEmpty())) { /* process output */ } 
    if (tempString.length != 0) { /* process output */ } 

아이디어 :

내가 해봤 것들 중 일부

?

편집 : 오, 그래도 '\ n'을 확인하기 전에 '인코딩'및 '디코딩'을 시도해 보았습니다.

+0

"적어도 '로 단순화 할 수 있습니다. –

답변

1

문자열을 RegEx로 트리밍 해보십시오. 나는 (first google hit에서 가져온)이 하나의 인기가 생각 : 당신이 사용할 수 another set of trim functions

if (!(infoArray[i].replace(/^\s+|\s+$/g, '') == '')) 

웹킷을 게시합니다.

0

나는 배열 요소를 다듬을 것을 제안합니다. 예를 들어, jQuery를 사용할 수 있습니다.

if (infoArray[i] = $.trim(infoArray[i])) { 
    strMsg += '<li>' + infoArray[i] + '</li>'; 
} 
관련 문제