2014-10-02 2 views
0

경고 : 나는 문제를 정확하게 설명하기위한 어휘가 부족합니다. 나를 참아주십시오.JQuery/Javascript & Split within split?

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

+0

for 루프가 순서대로 작동 할 수 있습니다. –

답변

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('><'); 

이 그럼 당신은 당신이 실제로 원하는 것을 얻을 수있는 긴 문자열을 사용하는 방법을 볼 수 있습니다 : 같은 첫 뭔가 간단한 시작 .