2013-03-07 2 views
2

나는 다음 형식의 텍스트가있는 파일을 가지고 있습니다. (CSS는 사실을 무시함) 두 문자 사이의 문자열을 가져와야합니다.두 문자 사이에서 텍스트 찾기 및 각각에 대해 뭔가 수행

<div id="unused"> 
    |#main| 
    #header| 
    .bananas| 
    #nav| 
    etc 
</div> 

내가 가진 코드는 다음과 같습니다 :

var test_str = $('#unused').text(); 
var start_pos = test_str.indexOf('|') + 1; 
var end_pos = test_str.indexOf('|',start_pos); 
var text_to_get = test_str.substring(start_pos,end_pos); 
//I want to do something with each string here 

이 단지 첫 번째 문자열을 가져옵니다 캐릭터마다 뭔가. 어떻게 각 문자열에 대해 뭔가를 할 논리를 추가 할 수 있습니까?

답변

1

당신은 당신은

var my_splitted_var = $('#unused').text().split('|'); 
1

사이에 문자열의 배열을 얻기 위해 분할 방법을 사용할 수 있습니다;

$.each($("#unused").text().split("|"), function(ix, val) { 
    val = $.trim(val); //remove \r|\n 
    if (val !== "") 
     alert(val); 
}); 
1

하나의 방법처럼 분할 할 수 있습니다 |

Live Demo

arr = $('#unused').text().split('|'); 
1

한 가지 방법 :

var test_str = $('#unused').text(); 

while(!test_str.indexOf('|')) 
{ 
var start_pos = test_str.indexOf('|') + 1; 
var end_pos = test_str.indexOf('|',start_pos); 
var text_to_get = test_str.substring(start_pos,end_pos); 
test_str = test_str.slice(end_pos,test_str.length); 
} 
1

정규식-버전 :

var trimmedHtml = $("#unused").html().replace(/\s/g, ''); 

var result = new Array(); 

var regExp = /\|(.+?)(?=\|)/g; 
var match = regExp.exec(trimmedHtml); 
result.push(match[1]); 
while (match != null) { 
    match = regExp.exec(trimmedHtml); 
    if (match != null) result.push(match[1]); 
} 

alert(result); 

LIVE DEMO (jsfiddle.net)

그래서 당신은 단지 파이프 (|) 사이의 요소를 얻을. 예제에서 모든 일치하는 결과를 배열로 푸시했습니다. 이제 반복하여 결과를 얻을 수 있습니다.

관련 문제