배열 요소에 새 줄만 포함되어 있는지 확인하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/933476

  •  06-09-2019
  •  | 
  •  

문제

단락으로 구성된 일반 텍스트 파일과 일부 빈 줄은 Ajax를 통해 배열에로드됩니다. 배열은 다음과 같은 새로운 라인에 의해 요소로 분할됩니다.

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

그런 다음 배열은 다양한 요소의 키워드에 대한 다양한 테스트와 함께 For Loop을 통과하여 다음 N- 요소가 특정 방식으로 처리되는 것을 나타냅니다. 대부분 요소는 다음과 같이 출력됩니다

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

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

배열 요소가 비어 있는지 확인하기 위해 테스트 조건이 필요하거나 Newline 문자가 포함되어 있는지 확인하십시오. 어느 것이 적용되는지 잘 모르겠습니다. 또한 서버는 버그가 많고 때로는 새 정보를로드하는 데 1 분이 걸리므로 가장 최근 코드를 새로 고치고 있는지 확실하지 않습니다.

내가 시도한 것들 중 일부 :

    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'을 확인하기 전에 '인코딩'과 '디코딩'을 시도했습니다.

올바른 솔루션이 없습니다

다른 팁

정규식으로 문자열을 트리밍하십시오. 나는 이것이 인기가 있다고 생각합니다 (가져온 것입니다 첫 번째 구글 히트):

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

WebKit은 게시합니다 다른 트림 함수 세트 당신은 사용할 수 있습니다.

배열 요소를 다듬는 것이 좋습니다. 예를 들어 jQuery를 사용할 수 있습니다.

if (infoArray[i] = $.trim(infoArray[i])) {
    strMsg += '<li>' + infoArray[i] + '</li>';
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top