Não faz sentido usar numeros.match(",")
como sugeriram, pois isso só vai verificar se existe uma vírgula, nada mais (não vai verificar se os elementos separados por vírgula são mesmo números, nem nada disso).
Tem vários jeitos de fazer, e depende do que você precisa. Por exemplo, se for para processar um a um, poderia ser:
var numeros = document.getElementById('txtNumeros').value.split(',');
for (var i = 0; i < numeros.length; i++) {
var valor = parseInt(numeros[i]);
if (isNaN(valor)) {
// não é número, mostra o valor antes da conversão (ou não mostra nada, vc decide o que fazer)
document.write(`valor não é um número: ${numeros[i]}`);
} else {
document.write(`O quadrado de ${valor} é ${valor * valor} <br>`);
}
}
Ou seja, eu faço o split
pela vírgula, e para cada valor eu verifico se é mesmo um número (se for, aí eu faço os cálculos). E se for só para mostrar o valor e nada mais, nem precisa guardar em uma variável, pode fazer direto na hora de mostrar.
Agora, se a ideia for calcular os quadrados somente se todos forem números (ou seja, se tiver algum valor que não é número, não calcula para nenhum), aí poderia ser assim:
var numeros = document.getElementById('txtNumeros').value.split(',');
var todosNumeros = true;
for (var i = 0; i < numeros.length; i++) {
var convertido = parseInt(numeros[i]);
if (isNaN(convertido)) {
document.write(`Um dos valores não é um número: ${numeros[i]}`);
todosNumeros = false; // tem um que não é número
break; // sai do loop
}
numeros[i] = convertido;
}
if (todosNumeros) {
for (var n of numeros) {
document.write(`O quadrado de ${n} é ${n * n} <br>`);
}
}
Ou seja, primeiro eu tento converter todos para número. Se algum falhar, eu encerro o loop e não faço nenhum cálculo. Somente se todas as conversões derem certo, aí eu calculo os quadrados.