JSFiddle - React, Tailwind, and code Playground

HTML

<ul id="results"></ul>

CSS

li {
    background:#efefef;
    padding:3px 6px;
    margin:3px;
}
.failed {
    color:red;
}

JavaScript

var tests = {
    'vn.search.yahoo.com.vn': 'yahoo.com.vn',
        'search.yahoo.com': 'yahoo.com',
        'yahoo.com.br': 'yahoo.com.br',
        'abc.porto.pt': 'porto.pt',
        'ccc.abc.cn': 'abc.cn',
        'dorgas.com': 'dorgas.com',
        'www.cn.com': 'cn.com',
        'abc.iu.uk': 'iu.uk',
        'asia.com': 'asia.com',
        'br.asia': 'br.asia',
        'asia.com.br': 'asia.com.br'
};

    function getDomainName(domain) {
        var parts = domain.split('.').reverse();
        var cnt = parts.length;
        if (cnt >= 3) {
            // see if the second level domain is a common SLD.
            if (parts[1].match(/^(com|edu|gov|net|mil|org|nom|co|name|info|biz)$/i)) {
               return parts[2] + '.' + parts[1] + '.' + parts[0];
            }
        }
        return parts[1]+'.'+parts[0];
    }

var results = $('#results');

for (var test in tests) {

    var domain = tests[test];
    match = getDomainName(test),
        ok = (match === domain) ? 'ok' : 'failed';

    results.append('<li class="' + ok + '">' + test + ': ' + ok + ' (' + match + ')</li>');
}