Вы можете легко сделать это в триггере с регулярным выражением, что-то вроде:
create or replace function clean_value()
returns trigger
language plpgsql
AS
$body$
begin
new.clean_column = regexp_replace(new.dirty_column, '[^0-9\.]', '', 'g');
return new;
end;
$body$
/
Это сохранит «чистую» версию ввода dirty_column
в столбце clean_column
.