Mah, se vuoi usare proprio quella espressione regolare basta metterla dentro
function foo(v){
var foo=/^((\(44\))( )?|(\(\+44\))( )?|(\+44)( )?|(44)( )?)?((0)|(\(0\)))?( )?(((1[0-9]{3})|(7[1-9]{1}[0-9]{2})|(20)( )?[7-8]{1})( )?([0-9]{3}[ -]?[0-9]{3})|(2[0-9]{2}( )?[0-9]{3}[ -]?[0-9]{4}))$/.test(v);
if(!foo){alert("Formato telefono non valido: deve iniziare con il prefisso internazionale e includere solo numeri (almeno 10)");}
return foo;
}
premetto che non mi son messo a verificare se tale espressione regolare funziona o meno - tu mi dici di sì e io ti credo.
Poi nel campo che vuoi controllare metti
onblur="foo(this.value)"
Non so, prova. Quanto al menu a discesa da cui seleziona UK e ci si penserà in un secondo momento se hai anche un elenco di nazioni.
Se invece vuoi chiamare foo da dentro la funzione che hai già, mi pare di capire il campo sia document.regform.cell.value per cui:
foo(document.regform.cell.value);
vedi un po' te, si presume un pochino sai gestire un rimaneggiamento di un codice che consiste nell' aggiungere una funzione allo script, chiamarla da dentro una altra funzione, e levare i controlli su document.regform.cell.value effettuati prima.