2012-08-03 3 views
0

큰 텍스트 블록을 995 자 블록으로 분할하고 각 블록을 배열로 푸시하는 코드를 작성했습니다. 그러나이 결과는 995 자 라인에있을 때 단어를 나눕니다. 각 텍스트 블록이 가능한 한 995 자 (가능한해야 함)에 가깝지만 마지막 사용 가능한 공간에서 끝나도록 코드를 편집 할 수 있습니까? ?분할 된 단어로 끝나지 않도록 텍스트 블록을 분할하는 방법은 무엇입니까?

function cutUp() { 
var PAname = prompt("Determine PA type and PA Name (e.g. 5=mexican food="); 
var chunks = []; 
var OGstring = document.getElementById('PATypes').value; 
var my_long_string = OGstring.split('1').join('').split('2').join('').split('3').join('').split('4').join('').split('5').join('').split('6').join('').split('7').join('').split('8').join('').split('9').join('').split('0').join('').split('[edit]').join('').split('[citation needed]').join('').split('[').join('').split(']').join('').split('(').join('').split(')').join(''); 



var i = 0; 
var n = 0; 
while (n < my_long_string.length) { 
    chunks.push(my_long_string.slice(n, n += 995)); 

} 
if (chunks[0] != null) { 
    $('PAType=Name=Value8').innerHTML = PAname + chunks[0]; 
} 
if (chunks[1] != null) { 
    $('PAType=Name=Value9').innerHTML = PAname + chunks[1]; 
} 
if (chunks[2] != null) { 
    $('PAType=Name=Value10').innerHTML = PAname + chunks[2]; 
} 
if (chunks[3] != null) { 
    $('PAType=Name=Value11').innerHTML = PAname + chunks[3]; 
} 
if (chunks[4] != null) { 
    $('PAType=Name=Value12').innerHTML = PAname + chunks[4]; 
} 
if (chunks[5] != null) { 
    $('PAType=Name=Value13').innerHTML = PAname + chunks[5]; 
} 
if (chunks[6] != null) { 
    $('PAType=Name=Value14').innerHTML = PAname + chunks[6]; 
} 
if (chunks[7] != null) { 
    $('PAType=Name=Value15').innerHTML = PAname + chunks[7]; 
} 
if (chunks[8] != null) { 
    $('PAType=Name=Value16').innerHTML = PAname + chunks[8]; 
} 
if (chunks[9] != null) { 
    $('PAType=Name=Value17').innerHTML = PAname + chunks[9]; 
} 

////this is to create new exportable table 
$('exportTable').innerHTML += $('tableContents').innerHTML; 
$("exportTable").removeClass('hidden'); 
///this resets to default 
defaultReset(); 

} 특정 자바 스크립트 지식없이

+0

'PAType = Name = ValueX'가 유효한 선택자가 아닌지 의심 스럽습니다. – Bergi

+0

WTF, 문자열 제거에 정규 표현식을 사용하십시오 :'OGstring.replace (/ \ (편집 필요 인용문) \] | \ d | [[() \]]/g, "");' – Bergi

답변

0

, 내가 앞으로 995 개 문자를보고 말하고 싶지만, 그 문자는 그 자체 공백 인 경우, 당신이 찾을 때까지 시작으로 다시 찾고 시작 공백을 넣고 거기에서 잘립니다.

for(truncOffset = 995; truncOffset > 0; truncOffset--): 
{ 
    if chars[currentLoc + truncOffset] = ' ': /* a space character */ break; 
} 

린스, 맛을 반복 :

C 형태의 가상에서

chars 문자의 당신의 큰 배열되고. 해당 공간을 찾은 후 을 currentLoc + truncOffset으로 이동해야합니다.

관련 문제