Foros del Web » Programando para Internet » PHP »

preg_match problema

Estas en el tema de preg_match problema en el foro de PHP en Foros del Web. Hola tengo este codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php if ( ! preg_match ( '/^[a-zA-Z0-9áéíóúAÉÍÓÚÑñ-]+$/' , $_POST [ 'url' ] ) ) : ...
  #1 (permalink)  
Antiguo 22/07/2013, 17:21
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
preg_match problema

Hola tengo este codigo:

Código PHP:
Ver original
  1. <?php
  2. if(!preg_match('/^[a-zA-Z0-9áéíóúAÉÍÓÚÑñ-]+$/', $_POST['url'])):
  3.         echo 'Solo se permiten los caracteres de la A-z, acentos, numeros y el signos -</div></label>';
  4. else:
  5.     echo 'Todo correcto';
  6. endif;
  7. ?>

Lo que pasa que no me permite dejar el campo en blanco y lo que yo quiero esque SOLO se puedan utilizar a-zA-Z0-9áéíóúAÉÍÓÚÑñ- (No se permiten los espacios, pero si dejar el campo en blanco)
  #2 (permalink)  
Antiguo 22/07/2013, 17:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: preg_match problema

Pues tu problema es lógico, ¿qué te parece usar empty() antes que preg_match() para verificar si lleva algo o no?

Si lo buscas hacer con una expresión regular te adelanto que estás fuera de contexto, pues nada tiene que ver con preg_match(), y si es así entonces pido que muevan tu tema al foro de RegExp.

Pero te adelando que es innecesaria esa comprobación con RegExp, pues con empty() debería bastar para cubrir ese hueco lógico.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/07/2013, 17:56
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: preg_match problema

Pero lo que quiero esque se pueda quedar el campo en blanco, en este caso empty no me sirve para nada
  #4 (permalink)  
Antiguo 22/07/2013, 18:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: preg_match problema

Cita:
Iniciado por XD2XD2 Ver Mensaje
Pero lo que quiero esque se pueda quedar el campo en blanco, en este caso empty no me sirve para nada
¿No?

¿Y por qué?

Digo, empty() significa vacio, entonces no se por qué no te podría servir.

¿Algo así no?
Código PHP:
Ver original
  1. if (empty($var) || preg_match($regex, $var)) {
  2.   // significa: si $var está vacia (en blanco) o valida la RegExp
  3. }

Si no es así, entonces se escapa de mi sentido común, tal ves deberías explciarte mejor.

¿A qué le llamas "en blanco" si "vacio" no es lo mismo para ti?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 23/07/2013, 02:41
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: preg_match problema

Yo lo que quiero esque permita que el campo se quede vacio, sin valor
  #6 (permalink)  
Antiguo 23/07/2013, 06:23
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: preg_match problema

Y Ud probo lo que le dijeron ? creo ha estas alturas esta buscando le escriban todo el script

Código PHP:
Ver original
  1. if (empty($var) || preg_match($regex, $var)) {}

Se lo traduzco:

SI ('esta vacio' ó 'valida la expresion') ENTONCES ...
__________________
Salu2!
  #7 (permalink)  
Antiguo 23/07/2013, 06:59
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: preg_match problema

Pero esque no es eso.
if (preg_match($regex, $var)) {
echo 'Error';
}else{
echo 'Correcto el campo esta vacio o no contiene los signos '.$regex;
}
Me sale error al dejar el campo empty y no se porque
  #8 (permalink)  
Antiguo 23/07/2013, 07:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: preg_match problema

Si... seria asi:

Código PHP:
Ver original
  1. if (!empty($var)
  2. {
  3.   if (preg_match($regex, $var))
  4.   {
  5.     // ok
  6.   }else
  7.     echo 'Solo se permiten los caracteres de la A-z, acentos, numeros y el signos..';
  8. }

Si esta vacio... sigue de largo y no hace explotar el preg_match()
__________________
Salu2!

Última edición por Italico76; 23/07/2013 a las 07:31

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:13.