Hola nuevamente
quiero comparar una variable $x con un rango de valores, por ejemplo de 3 al 20. Sé q hay una forma como:
if($x == "\[3-20]"){
echo "hola";
}
Pero no encuentro la sintaxis correcta, alguien me ayuda please?????
| |||
comparación con un rango de valores Hola nuevamente quiero comparar una variable $x con un rango de valores, por ejemplo de 3 al 20. Sé q hay una forma como: if($x == "\[3-20]"){ echo "hola"; } Pero no encuentro la sintaxis correcta, alguien me ayuda please????? |
| |||
Lo que hago en esos casos es usar range() para crear la lista de valores posibles y lusgo lo verifico con in_array() Código PHP: Saludos |
| |||
esta excelente esta muy buena tu idea.. ...pero yo estoy seguro de haber visto en alguna parte algo como asi: [1-5a-zA-Z] (o algo así) y lo usan para referenciar a todos los valores q se incluyen en ese rango (1,2,3,4,5 a,b,.....x,y,z A, B......X,Y,Z) Han visto alguna ves eso, o estoy equivocado?? |
| |||
Eso que usas .. Machine80 son patrones de expresiones regulares .. y desde PHP los puedes usar con funciones como: eregi() .. preg_match() .. y algunas más ... www.php.net para más info. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Por otro lado, en lo que toca al uso de expresiones regulares para ese tipo de comparaciones numéricas, simplemente no lo recomiendo, pues las ER sirven para evaluar patrones de cadenas, no rangos numéricos. Y aunque tal vez pudiera hacerse un patrón para encontrar las coincidencias que necesitas, lo mas seguro es que termines con un patrón muy complejo, y tu aplicación consumiría muchos más recursos de los necesarios, pues las expresiones regulares son bastante demandantes de recursos del sistema. No quiero desanimarte si quieres meterte a las expresiones regulares, pues conocerlas te ahorrará mucho trabajo en ciertas circunstancias, de hecho yo las uso mucho cuando valído campos de formularios.
__________________ Manoloweb |
| |||
Hola, Opino como Manoloweb, las expresines regulares no son lo mejor para rangos numericos. Por ejemplo, piensa como seria la expresion regular para validar si un numero esta entre 0 y 347. Ahora mismo ni se me ocurre, directametne es mas facil el < y > (incluso mas "natural"). Quizas deberias añadir otra condicion para especificar que sea un entero y eliminar los posibles valores decimales (si es que quieres que solo sea el "rango" de numeros enteros). En ese casi quizas la solucion de fran86 sea mas "natural". Saludos.
__________________ Josemi Aprendiz de mucho, maestro de poco. |