2016-03-01 2 views
0

привет, у меня проблемы с моей петлей, используя jszip - Это для замены текста, я планирую сделать 1000 файлов и более. Я хочу добавить число i ++ для каждого и сохранить его в отдельный текстовый файл в zip. но теперь мой код похож на этот, и он показывает только последний файл с текстом ввода, пожалуйста, помогитеjavascript jszip добавить файл в каждый цикл

Я хочу, чтобы zip.add проходил через каждую вариацию, но он записывает только номер не весь ввод + номер

HTML:

<script type="text/javascript" src="jszip.js"></script> 
<form> 
<label> Enter Block of text </label> 
<textarea id="inp" name="original"></textarea> 
<label> Here is your result </label> 
<textarea id="out" name="result"></textarea> 

<label> Enter string to replace </label> <br> 
<input type="text" id="ori" name="string"></input> 
<label> Enter what to replace it with </label> 
<input type="text" id="new" name="replace"></input> 
<input type="button" onClick="getin()" value="Click for result"> 
<input id="button" type="button" onClick="getzip()" value="Create Zip"> </input> </form> 

JAVASCRIPT:

var zip = new JSZip(); 

for (var i = 1; i < 100; i++) { 
    getin(i) 
    } 

function getin() { 
    var old = document.getElementById("ori").value; 
    var reg = new RegExp(old, "gim"); 
    var e = document.getElementById("new").value; 
    var str1, str2; 
    str1 = document.getElementById("inp").value; 
    if (str1 == "") {null;} 
    var end = str1.replace (reg, e+i); 
    document.getElementById("out").value = end; 
    zip.add("output"+i+".txt", end+"\n") 
    } 

    function getzip()  { 
    content=zip.generate(); 
    location.href="data:application/zip;base64,"+content; 
} 
+0

'Гетин (я)' в течение цикла, но вы действуете 'Гетин()' не принимает никаких аргументов – Ramanlfc

+0

я хочу, чтобы это петля 'zip.add ("выход" + i + ". txt", end + "\ n") ' – kaospan

+0

также как я могу сделать вывод #out id результатом без нажатия - я думаю, что это ответ – kaospan

ответ

0

Это создаст почтовый индекс с 100 файлов с различными выходами на основе вашего регулярного выражения заменить - не уверен, ВАЗ т вы хотели точно с содержанием.

var zip; 
 

 
function getin() { 
 
    var old = document.getElementById("ori").value; 
 
    var reg = new RegExp(old, "gim"); 
 
    var e = document.getElementById("new").value; 
 
    var str1, str2; 
 
    str1 = document.getElementById("inp").value; 
 
    if (str1 == "") { 
 
    return; 
 
    } 
 
    
 
    zip = new JSZip(); 
 
    var result = ''; 
 
    
 
    Array(100).fill().forEach(function(v,i) { 
 
    \t var end = str1.replace(reg, e + i); 
 
    \t result += end; 
 
    \t zip.file("output" + i + ".txt", end + "\n") 
 
    }); 
 
    
 
    document.getElementById("out").value = result; 
 
} 
 

 

 
function getzip() { 
 
    if (!zip) { return; } 
 
    content = zip.generate(); 
 
    location.href = "data:application/zip;base64," + content; 
 
}
<script src="http://rawgit.com/Stuk/jszip/master/dist/jszip.min.js"></script> 
 

 
<form> 
 
    <label> Enter Block of text </label> 
 
    <textarea id="inp" name="original"></textarea> 
 
    <label> Here is your result </label> 
 
    <textarea id="out" name="result"></textarea> 
 

 
    <label> Enter string to replace </label> 
 
    <br> 
 
    <input type="text" id="ori" name="string"> 
 
    <label> Enter what to replace it with </label> 
 
    <input type="text" id="new" name="replace"> 
 
    <input type="button" onClick="getin()" value="Click for result"> 
 
    <input id="button" type="button" onClick="getzip()" value="Create Zip"> 
 
</form>

Смежные вопросы