кроме того 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); }
}