2014-10-02 60 views
0

警告:作爲一個潛水員,我缺乏精確描述我的問題的詞彙。忍受着我。JQuery/Javascript和分裂內拆分?

假設我有類似以下的字符串:

A1 A2 %% %% A3 A4 %% B1 || B2 %% %% B3 %% B4 || C1 C2 %%% %C3%%C4 || D1 %% D2 %% D3 %% D4

使用JavaScript/JQuery我想分割它兩次(使用'||'和'%%'作爲分隔符)下面的HTML作爲輸出:

<p><input value="A1"></input><input value="A2"></input><input value="A3"></input><input value="A4"></input></p> 
<p><input value="B1"></input><input value="B2"></input><input value="B3"></input><input value="B4"></input></p> 
<p><input value="C1"></input><input value="C2"></input><input value="C3"></input><input value="C4"></input></p> 
<p><input value="D1"></input><input value="D2"></input><input value="D3"></input><input value="D4"></input></p> 

我知道如何做基本的分割和連接,但是超出了我的理解。

+2

開始嘗試...... – loveNoHate 2014-10-02 19:59:43

+0

for循環可能是爲了順序。 – 2014-10-02 20:03:37

回答

0

您可以使用replace

function splitString(match, part) { 
 
    switch (part) { 
 
    case '%%': 
 
     return '"></input><input value="'; 
 
      
 
    case '||': 
 
     return '"></input></p>\n<p><input value="'; 
 
    } 
 
} 
 

 
var formattedValue = 'A1%%A2%%A3%%A4||B1%%B2%%B3%%B4||C1%%C2%%C3%%C4||D1%%D2%%D3%%D4'.replace(/(%%|\|\|)/g, splitString); 
 

 
formattedValue = '<p><input value="' + formattedValue + '"></input></p>'; 
 

 
console.log(formattedValue);

0

您可以使用這樣的事情。

s = "A1%%A2%%A3%%A4||B1%%B2%%B3%%B4||C1%%C2%%C3%%C4||D1%%D2%%D3%%D4"; 
s2 = s.split("||"); 
s2.forEach(function(item){ 
    s3 = item.split("%%"); 
    s3.forEach(function(item2){ 
     console.log(item2); 
    }); 
}); 
0

所有拆分連接。它會很快。

var str = 'A1%%A2%%A3%%A4||B1%%B2%%B3%%B4||C1%%C2%%C3%%C4||D1%%D2%%D3%%D4', 
    result = str.split('||').join('"></input></p>\n<p><input value="'); 

result = '<p><input value="'+ 
     result.split('%%').join('"></input><input value="')+ 
     '"></input></p>'; 

console.log(result); 
//or 
//alert(result); 
// 

像這樣的問題並沒有考慮到你想要什麼格式。

var result = str.split('||').join('><'); 
result = str.split('%%').join('><'); 

然後,你可能會看到如何使用更長的字符串得到你真正想要的: 與第一類的簡單開始。