Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - criskapunk

#111
Una expresión regular es un patrón que define un conjunto de cadenas. Por ejemplo, vos querés definir las cadenas "Casa - Cosa - Cesa". En vez de escribir cada una de las palabras, podés crear una expresión que las represente, que en este caso sería C(a|o|e)sa.

Un saludo.
#112
Como no publicaron nada todavía, para que no muera el hilo les dejo otro reto.


Validar fechas con el siguiente formato: dd/mm/aaaa.

(La cadena 1/2/2000 no sería válida. Tendría que ser 01/02/2000, por ejemplo).
- Comprobar si la cantidad de días es correcta para el mes en cuestión. Por ejemplo, no sería correcta 30/02/2000. Para Febrero tomamos como valor de 28 días, sin considerar años bisiestos (No se si esto se podrá hacer con RegExp xD).
- El intervalo de años debe estar entre 1900 y 2050.

Edito:
Ya la terminé. Es ILEGIBLE :P

Un saludo.
#113
@pucheto
Si, eso es verdad. En el código que publiqué si se llega a ingresar un número con 7 o más cifras decimales lo toma como entero, por ejemplo el 10.0000001 lo toma como entero, pero no conozco tanto de C todavía :xD

Un saludo.
#114
El código no es mio, sino una mera traducción a C de algo que vi en otro foro, espero te sirva.


#include <stdio.h>

int main()
{
int n;
int f = 0; // Flag
float num;


while (f == 0)
{
printf("Ingrese un numero: ");
scanf("%f", &num);
n = (int)num;
    if ((n - num) == (float)0)
    {
      f = 1;
        printf("El numero es entero\n");
      break;
    } else
    {
      f = 0;
      printf("El numero es decimal\n");
    }
  }
  printf("%d", n);

  return 0;
}


Un saludo.
#115
Buenas chicos,

Esa expresión no valida bien. Devuelve lo siguiente:

0:00 Formato valido
00:00 Formato valido
23:59 Formato valido
24:00 Formato valido
100:00 Formato valido
12:000 Formato valido
8:10    Formato valido
08:10 Formato valido
001:05 Formato valido
99:00 Formato valido


Mi expresión es así (Hay que agregarle únicamente el ^ y $ :xD).

^([0-1]\d|2[0-3]|(\d)):([0-5]\d)$

0:00 Formato valido
00:00 Formato valido
23:59 Formato valido
24:00 Formato invalido
100:00 Formato invalido
12:000 Formato invalido
8:10 Formato valido
08:10 Formato valido
001:05 Formato invalido
99:00 Formato invalido


Les dejo el script que utilicé.

Código (php) [Seleccionar]
<?php

$cadenas 
= array (
0=>"0:00",
1=>"00:00",
2=>"23:59",
3=>"24:00",
4=>"100:00",
5=>"12:000",
6=>"8:10",
7=>"08:10",
8=>"001:05",
9=>"99:00",
);

$patron "/^([0-1]\d|2[0-3]|(\d)):([0-5]\d)$/";

for(
$i 0$i count($cadenas); $i++)
{
if (preg_match($patron$cadenas[$i]))
{
print $cadenas[$i];
print " Formato valido<br>";
} else
{
print $cadenas[$i];
print " Formato invalido<br>";
}
}

?>


Un saludo.
#116
Edito: Error mío, perdón.
#117
^"[\w?\s?(\r\n)?]*"$

Edit: Me compliqué demasiado parece :xD No sabía que había que escapar las comillas, por eso no me funcionaba la expresión.

Un saludo.
#118
@Shell Root:
Esa expresión permite en la primer palabra que todas las letras sean mayúsculas. Solo pueden ir al principio de cada una.

@Valkyr:
Funciona perfecto :D Cumple con los requisitos que puse en el primer post. Te toca postear reto.

Un saludo.

#119
Jaja! Un nombre escrito en Whitespace

Lo del ? es por esto que puse en el primer post:

Citarlas letras mayúsculas podrán aparecer sólo al principio de las palabras

Pueden aparecer o no.

Un saludo.
#120
@Shell Root:
Porque la segunda palabra puede o no estar. Te referís a ese o al ? del comienzo?

Tu expresión supera el límite de dos palabras :P Además acepta como válido solo espacios en blanco.

Un saludo.