• Publicidad

Sacar los puntos de una cifra

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Sacar los puntos de una cifra

Notapor charlygarcia » 2009-10-08 08:45 @406

Hola a todos.

Tengo el siguiente problemilla y no sé cuál sería la manera más sencilla de solucionarla.

En un sitio web tengo un formulario que recibe varios datos, entre otros un precio.
El visitante debe escribir el valor, sin comillas, sin comas, y sin punto, dado que es una cifra.

Ejemplo: "35000000"

pero cuando miro la base de datos, veo que muchos de los registros tienen el siguiente formato:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
35.000.000
35'000.000
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿A alguien se le ocurre una manera de hacer la conversión para que las entradas de los usuarios queden en el formato que necesito?

La verdad, me dijeron que con expresiones regulares, pero no las manejo muy bien.

Muchas gracias por la colaboración.
Última edición por explorer el 2009-10-08 09:19 @430, editado 1 vez en total
Razón: Ortografía
[text]¿Cómo lograr que no se seque una gota de agua? Arrojándola al mar. [/text] - Nota: Este tag no se puede utilizar en firmas.Samsara
Avatar de Usuario
charlygarcia
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2009-03-06 23:16 @011

Publicidad

Re: Sacar los puntos de una cifra

Notapor explorer » 2009-10-08 09:25 @434

La labor de filtrado debería ser realizado en dos sitios: en el cliente web, mediante un pequeño código Javascript, y en el servidor, antes de introducir el dato en la base de datos.

Se debe hacer dos veces, para que el usuario vea que su dato se ha modificado, mientras que en el servidor hay que hacerlo porque no nos podemos fiar en ningún momento de los datos que nos envía el cliente web (el usuario puede haber manipulado los campos del formulario que le ofrecemos. Una vez estuve a punto de comprar una lavadora por $5 con ese truco).

Una buena opción, también, es definir el campo de la base de datos como numérica, y así será el motor de la base de datos el que haga un control más a ese dato.

Dices que esperas un número, pero no indicas si ese número debe ser entero, decimal, positivo, negativo, los dos, etc.

En el caso de esperar un número entero, positivo, te vale con quitar (//) todo aquello (/g) que no sea una cifra (\D):

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $numero = '35.000.000';

$numero =~ s/\D//g;

print "$numero\n";    # 35000000
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Sacar los puntos de una cifra

Notapor charlygarcia » 2009-10-09 00:00 @041

Como siempre tus respuestas están mejores que las expectativas. ¡¡¡¡Te agradezco muchísimo!!!!
[text]¿Cómo lograr que no se seque una gota de agua? Arrojándola al mar. [/text] - Nota: Este tag no se puede utilizar en firmas.Samsara
Avatar de Usuario
charlygarcia
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2009-03-06 23:16 @011


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron