2016-03-01 24 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

'getin(我)'在for循環,但你函數'getin()'不帶任何參數 – Ramanlfc

+0

我想這個循環'zip.add( 「輸出」 + i +「.txt」,end +「\ n」)' – kaospan

+0

我怎樣才能讓#out id顯示結果而不點擊 - 我認爲這是答案 – kaospan

回答

0

這將創建100個文件不同的基礎上輸出你的正則表達式拉鍊代替 - 不知道WHA你想要與內容完全一致。

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>

相關問題