кроме того split может принимать регулярные выражения
проверить представляет ли строка собой число можно так
! isNaN(Number('...'))
без всяких try/eval/catch
правда это будет несколько более широкое понятие числа, так что можно и с помощью регулярных выражений
/^\d+$/.test('...')
и вообще этот код можно привести к следующему виду (только надо дописать пару методов)
function echo(){
    $('x').value.split(/\s+/)
        .map( trim )
        .filter( isNumber )
        .forEach(function( num ){
            window.open('http://...'+num+...);
        });
    function trim( s ){ return s.replace(/^\s+/, '').replace(/\s+$/, ''); }
    function isNumber( s ){ return /^\d+$/.test(s); }
}