2013-05-28 3 views
0

정규 표현식 작성에 도움이 필요합니다.정규 표현식에 대한 도움이 필요합니다.

도메인 이름 배열과 TLD 배열이 있습니다 (상당히 길다). 예 :

tlds = { 
    '.com':{ 
     1 : '£4.00', 
     2 : '£7.50', 
     3 : '£11.00', 
     4 : '£14.50', 
     5 : '£18.00', 
    }, 
    '.org':{ 
     1 : '£5.00', 
     2 : '£10.00', 
     3 : '£15.00', 
     4 : '£20.00', 
     5 : '£25.00', 
    }, 
    '.net':{ 
     1 : '£6.00', 
     2 : '£12.00', 
     3 : '£18.00', 
     4 : '£24.00', 
     5 : '£30.00', 
    }, 
    '.co.uk':{ 
     1 : '£7.00', 
     2 : '£14.00', 
     3 : '£21.00', 
     4 : '£28.00', 
     5 : '£35.00', 
    }, 
    '.com.br':{ 
     1 : '£9.00', 
     2 : '£16.00', 
     3 : '£22.00', 
     4 : '£28.00', 
     5 : '£34.00', 
    } 
} 

domainResults = { 
    0 : { 
     'domain' : 'anything.com', 
     'status' : 'available' 
    }, 
    1 : { 
     'domain' : 'anything-weird.org', 
     'status' : 'available' 
    }, 
    2 : { 
     'domain' : 'anything-amazing.co.uk', 
     'status' : 'available' 
    } 
} 

정확한 tld를 할당하고 싶습니다. 배열의 각 도메인 이름은 항상 TLD 중 하나와 일치합니다.

나는 루핑하는 도메인 이름과 일치 할 때까지 솔루션이 각 TLD를 REGEX로 루핑해야한다고 생각합니다.

저는 항상 최소한 26 개의 TLD가 있기 때문에 까다로울 것입니다. 가격이 잘못 표시되는 것을 방지하기 위해 다른 제품과 일치하는 제품이 없기를 바랍니다. (예 : '.com'으로 끝나는 도메인 이름. br '은 정규식'.com '의 결과가 아니어야하며'tld '.com.br'에만 해당).

감사합니다. 감사합니다.

+3

왜 당신은 단순히 선택하지 거기 가정하지? –

+0

JSON 데이터처럼 보입니다. 올바르게 사용하면 훨씬 쉽게 처리 할 수 ​​있습니다. – melwil

+1

@melwil 여기에 JSON이 없습니다. –

답변

0

도메인 문자열에는 하위 도메인 부분은 도메인이 TLD로 끝나는 경우

for(var index in domainResults){ 
    var domain = domainResults[index].domain; 
    var tld = domain.substring(domain.indexOf(".")); 
    // now tlds[tld] gives the corresponding tld object 
    console.log(tlds[tld]); 
} 
관련 문제