Necesito saber sí una variable es "algo.otracosa.otramas". A alguien se le ocurre? He pensado harto pero no me resulta :s
WTF!
No está mal escrita la pregunta... Es problema de lectura, lee otra vez y me dices que no entiendes xD yo te lo dibujo con manzanas
Las manzanas por favor :-*
Saludos
Cita de: el-pollo en 20 Enero 2010, 16:59 PM... sí una variable es "algo.otracosa.otramas"...
Ok. ¬¬
if ($strVariable == "algo.otracosa.otramas")
¬¬
Ja ja ja maldición... Yo me entiendo la pregunta pero no se responderme :xD
Ingreso una variable cualquiera, pero necesito que tenga 2 puntos y un texto cualquiera entre ellos, por ejemplo:
hola.chao.12a = válido
walala = inválido
wa.la = inválido
wa.la.la = válido
cualquier.cosa.escritaasi = válido
Ahora sí? xD upS olvide las manzanas
manzanaverde.manzanaroja.manzanamadura = válido
manza.na = inválido
:xD
<?php
verifica('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
function verifica($str){
if(count(explode('.', $str)) > 2)
echo 'Valido<br />';
else
echo 'Invalido<br />';
}
?>
CitarInvalido
Invalido
Valido
Valido
Necesito sólo 2 puntos, ya había pensado algo asi pero en vez de > 2 con == 2 pero por ejemplo ahí sería válido también
..hola
Hola..
H..ola
Lo que necesito es que siempre haya escrito algo mas
Por ejemplo la función sólo válida que haya mas de 2 puntos pero en teoría debería comprobar que haya textopuntotextopuntotexto :( eso no se decirlo en php
Expresiones regulares, investiga
^.+\..*\..*$
(Es una expresion regular)Creo que esa funciona, al menos la probe con los ejemplos que pusiste. Lo hice al toque, espero que de algo sirva ;)
<?php
verifica('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
function verifica($str){
if(count(explode('.', $str)) = 3)
echo 'Valido<br />';
else
echo 'Invalido<br />';
}
?>
no es tan dificil creop,
te tendria que responder asi, NO PROBE EL CODIGO!!!!
CitarInvalido
Invalido
Valido
Invalido
Nop, ya dije que ya había pensado en ver sí era igual a 3, lo de las expresiones regulares lo estoy leyendo pero creo que lo haré mejor en la noche.
Por lo que alcance a leer está vigente preg_ y ereg_ es obsoleto desde la versión lanzada en marzo 2009 por lo tanto intentaré hacerlo con la expresión regular preg apenas entienda como diablos se ponen las condiciones de la expresión a comparar xD todo a la noche, no te pierdas el próximo capítulo xD
Te lo voy a poner a lo basto.
1º=> explotas la cadena por los puntos.
2º=> Si explosion 1, explosion 2, explosion tres !="" ; y explosion 4=="";
Entonces es correcta.
<?php
$explosion=explode('.', $str);
if ($explosion[0]!="" && $explosion[1]!="" && $explosion[2]!="" $$ $explosion[4]=="")
{
echo "valido";
}
else
{
echo "no valido";
};
?>
POSDATA: NO LO HE PROBADO
habia un error, este codigo SI LO PROBE! y me funciona perfecto,:
<?php
function verifica($str){
if(count(explode('.', $str)) == 3)
echo 'Valido<br />';
else
echo 'Invalido<br />';
}
verifica('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
?>
ejemplo: http://ilovepc.comuf.com/fle.php (http://ilovepc.comuf.com/fle.php)
codigo tal cual la pagina: http://ilovepc.comuf.com/fle.phps (http://ilovepc.comuf.com/fle.phps)
Pero mira en tu función sí pones
Hola.. También lo arrojará como válido :s
A la noche lo veo muchas gracias a todos.
Un saludo!
Cita de: el-pollo en 20 Enero 2010, 21:17 PM
Pero mira en tu función sí pones
Hola.. También lo arrojará como válido :s
A la noche lo veo muchas gracias a todos.
Un saludo!
En este codigo "Hola.." no es valido, y esta en un hosting para que pruebes cualquier cosa que se te ocurra ;) (valida linea por linea)
http://raul338.iespana.es/regExpTest.php (http://raul338.iespana.es/regExpTest.php)
Esta hecho con la expresion regular que te puse arriba (una modificacion, porque antes Hola.. si funcionaba xD)
<html>
<head><title>Prueba de expreiones regulares</title></head>
<body>
<form method="POST">
<?php
if (isset($_POST["pruebas"])) {
$cadenas = explode("\n", $_POST["pruebas"]);
$patron = "^.+\..*\..+$";
foreach($cadenas as $prueba) {
if (ereg($patron, $prueba)) {
echo "$prueba: <b>Valido<b/><br/ >\n";
} else {
echo "$prueba: Invalido<br />\n";
}
}
}
?>
<textarea name="pruebas" cols="50" rows="7">
<?php if (!isset($_POST["pruebas"])) { ?>
hola.chao.12a
walala
wa.la
wa.la.la
cualquier.cosa.escritaasi
test1
test1.test2
test1.test2.test3
test1.test2.test3.test4
<?php } else
echo $_POST["pruebas"]; ?>
</textarea>
<br />
<input type="submit" value="probar" />
</form>
</body>
</html>
no funciona :S
Citarhola.chao.12a : Valido
walala : Invalido
wa.la : Invalido
wa.la.la : Valido
cualquier.cosa.escritaasi : Valido
test1 : Invalido
test1.test2 : Invalido
test1.test2.test3 : Valido
test1.test2.test3.test4 : Valido
hola.. : Valido
: Invalido
a ver con:
<?php
function verifica($str){
$str2 = explode('.', $str);
$coun = count($str2);
if($coun == 3 && $str2[0]!="" && $str2[1]!="" && $str2[2]!="")
echo 'Valido<br />';
else
echo 'Invalido<br />';
}
verifica('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
?>
Cita de: cɐstg en 20 Enero 2010, 21:31 PM
no funciona :S
Citarhola.chao.12a : Valido
walala : Invalido
wa.la : Invalido
wa.la.la : Valido
cualquier.cosa.escritaasi : Valido
test1 : Invalido
test1.test2 : Invalido
test1.test2.test3 : Valido
test1.test2.test3.test4 : Valido
hola.. : Valido
: Invalido
a ver con:
<?php
function verifica($str){
$str2 = explode('.', $str);
$coun = count($str2);
if($coun == 3 && $str2[0]!="" && $str2[1]!="" && $str2[2]!="")
echo 'Valido<br />';
else
echo 'Invalido<br />';
}
verifica('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
?>
Mucho mejor este que el mio, que te aseguras que solo tiene tres partes.
@el-pollo: Pero si en tu código pones hola... te aparece copmo válido
Saludos!
funciona perfecto :D
mismos links de prueba:
ejemplo: http://ilovepc.comuf.com/fle.php
codigo tal cual la pagina: http://ilovepc.comuf.com/fle.phps
Cita de: cɐstg en 20 Enero 2010, 21:31 PM
no funciona :S
Citarhola.chao.12a : Valido
walala : Invalido
wa.la : Invalido
wa.la.la : Valido
cualquier.cosa.escritaasi : Valido
test1 : Invalido
test1.test2 : Invalido
test1.test2.test3 : Valido
test1.test2.test3.test4 : Valido
hola.. : Valido
: Invalido
No se porque pero como que se atraza una linea, osea, intenta "Hola.." solo y te tira invalido, intenta "Hola.. (linea en blanco)" y te tira valido :-/ .... pero al menos funciona :xD
EDIT: Problema del cache del hosting :silbar:
y cambie la expresion regular, ahora si funciona (antes si ponias 4 puntos funcionaba igual xD)
function Validar($prueba) {
if (ereg("^[^\.]+\.[^\.]*\.[^\.]+$", $prueba)) {
//echo "<b>$prueba: Valido</b><br/ >\n";
return true;
} else {
//echo "$prueba: Invalido<br />\n";
return false;
}
}
@Raul está muy bueno gracias... También como está en tu página el test te aviso que tienes XSS xD ja ja
@luiggy2 :s yo todavía no posteo ningún código.
@cast gracias también... Como agradecimiento ingresé mi contraseña en la imagen que me mandaste al correo, aunque igual es extraño que gmail me pida mi contraseña de hotmail para abrir un enlace xD
porq! justo que borre el archivo! jaja, te tengo que hablar de esa imngaen. dejo el tema aca. denada, un gusto ayudarte.
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.Cita de: el-pollo en 20 Enero 2010, 21:50 PM
@Raul está muy bueno gracias... También como está en tu página el test te aviso que tienes XSS xD ja ja
XSS?? donde :o :o lo hackeo ya mismo jajaja XD
Ahi te modifique la expresion regular, ahi queda más "pro" :xD
Cita de: el-pollo en 20 Enero 2010, 21:50 PM
@Raul está muy bueno gracias... También como está en tu página el test te aviso que tienes XSS xD ja ja
@luiggy2 :s yo todavía no posteo ningún código.
@cast gracias también... Como agradecimiento ingresé mi contraseña en la imagen que me mandaste al correo, aunque igual es extraño que gmail me pida mi contraseña de hotmail para abrir un enlace xD
Perdón, iba pro Raul.
Saludos!
Cita de: luiggy2 en 20 Enero 2010, 22:40 PM
Cita de: el-pollo en 20 Enero 2010, 21:50 PM
@Raul está muy bueno gracias... También como está en tu página el test te aviso que tienes XSS xD ja ja
@luiggy2 :s yo todavía no posteo ningún código.
@cast gracias también... Como agradecimiento ingresé mi contraseña en la imagen que me mandaste al correo, aunque igual es extraño que gmail me pida mi contraseña de hotmail para abrir un enlace xD
Perdón, iba pro Raul.
Saludos!
jeje...no se imaginan el poder de las expresiones regulares >:D
[Source][VB] Calculadora de operaciones combinadas (http://foro.elhacker.net/net/calculadora_por_jerarquia_c-t262744.0.html;msg1282433#msg1282433) (con expresiones regulares, ultima revision (?))
Re: calculadora por jerarquia ()*/+- ...C#... (http://foro.elhacker.net/net/calculadora_por_jerarquia_c-t262744.0.html;msg1282433#msg1282433) (version anterior :P)
A mi me gustan muchos las expreciones regulares, aparte de que son muy buenas, no varian muchos en los diferentes lenguajes de programacion y resuelten muchos problemas en pocas lineas xDD.
Si no sabes aprende xDDD.
Me parece que se puede hacer mas corto con preg_match:
<?php
$a="hola.ggg.s";
If (preg_match('/(.+)\.(.+)\.(.+)/',$a,$res)){
echo "bien";
}else{
echo "mal";
}
?>
No se aplica a todos los casos, ademas si recuerdo bien....eso funcionaria con "a.a.a.a.a" (porque el "\." tambien es parte de . entonces lo toma igual)
Y ademas, el dijo que tambien se puede poner "aa..a" por lo que tu expresion regular obliga a poner al menos un caracter entre los puntos
tal ves si:
<?php
$a="hola.ggg.s";
if (preg_match('/^(\w|\d)+\.(\w|\d)+\.(\w|\d)+$/',$a,$res)){
echo "bien";
}else{
echo "mal";
}
?>
Cita de: raul338 en 8 Febrero 2010, 14:22 PM
No se aplica a todos los casos, ademas si recuerdo bien....eso funcionaria con "a.a.a.a.a" (porque el "\." tambien es parte de . entonces lo toma igual)
Y ademas, el dijo que tambien se puede poner "aa..a" por lo que tu expresion regular obliga a poner al menos un caracter entre los puntos
Tenes razon... no me fije en eso...
Cita de: raul338 en 8 Febrero 2010, 14:22 PM
Y ademas, el dijo que tambien se puede poner "aa..a" por lo que tu expresion regular obliga a poner al menos un caracter entre los puntos
En ese caso se pone (.*)
pero ya fue resuelto y de mas de una forma :xD
cast, tu metodo tiene el mismo "defecto" que el de KrossPock
entonces:
<?php
$a="hola.ggg.s";
if (preg_match('/^(\w|\d)*\.(\w|\d)*\.(\w|\d)*$/',$a,$res)){
echo "bien";
}else{
echo "mal";
}
?>
??
no, porque eso valida "..." perfectamente, tu ya habias participado en esto y creo que tu respuesta de antes estaba bien (creo)
pero entoncesd porq acepta aa.. y no ... xD! jajaj bueno, dejemoslo ahi total el ya soluciono su problema :p
Edit: Perdon, me confundi de post, que algun mod lo borre