a fronte della seguente funzione che permette di digitare solo numeri, e virgole (.)
vorrei permettere la scrittura diuna sola virgola, come è stato fatto in uno script trovato nel sito, dove però il risultato 'filtrato' viene scritto in altro campo
riporto anche quest'ultima funzione che vorrei usare come esempio per adeguare la precedente (non son riuscito a farlo).

1) permette di scrivere solo numeri e virgole in campo 'input'

<script type="text/javascript">
var r=
{ 'notnumbers':/[^\d'&'\.]/g }
function valid(o,w)
{o.value = o.value.replace(r[w],'');}
</script>

<input type="text" name="txtPostal" onkeyup="valid(this,'notnumbers')" onblur="valid(this,'notnumbers')">

2) trascrive solo i numeri e una virgola

function stripNonNumeric( str ){
str += '';
var rgx = /^\d|\.|-$/;
var out = '';
for( var i = 0; i < str.length; i++ ){
if( rgx.test( str.charAt(i) ) ){
if( !( ( str.charAt(i) == '.' && out.indexOf( '.' ) != -1 ) ||
( str.charAt(i) == '-' && out.length != 0 ) ) ){
out += str.charAt(i);
}
}
}
return out;

<input type="text" onkeyup="javascript:document.getElementById('numSt ripResult').innerHTML = stripNonNumeric( this.value );" />