-1

正規表現の作成について助けが必要です。

ドメイン名の配列と 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 の 1 つと一致します。

ソリューションは、ループしているドメイン名と一致するまで、各 TLD を REGEX としてループする必要があると思います。

私は常に少なくとも 26 の TLD を持っており、価格の誤った表示を防ぐために、それらのどれもが他のものと一致しないようにしたいので、これが難しいことはわかっています (例: 「.com.br」で終わるドメイン名は決して正規表現 '.com' の結果であるが、tld '.com.br' のみ)。

4

1 に答える 1

0

ドメイン文字列にサブドメイン部分がないと仮定

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]);
}
于 2013-05-28T11:49:00.490 に答える