ccc

Expresiones regulares

Que solo acepte números enteros:
if (!/^([0-9])*$/.test(precio)) {
        alert("Error: No es un número entero");
        retorno = false;
    }

Que solo acepte números enteros y decimales:
if (!/^\d{1,3}(?:,\s?\d{3})*(?:\,\d*)?$/.test(prec_para_vender)) {
      alert("Error: No es un número entero ni decimal");
        retorno = false;
 }

Chequear un email:
function validateEmail(email) {
    var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}

if (!validateEmail($("#email").val())) {
        alert("Error: Ese formato de email no es correcto");
        retorno = false;
}

^: principio de la cadena.
$: final de la cadena.
.: se admite cualquier carácter que no sea un salto de línea.
x|y: la coincidencia es positiva si se encuentra alguno de los caracteres especificados.
(abcde): la coincidencia es positiva si se encuentra el texto indicado entre los paréntesis.
------------------------------------------------------------
[abc]: se admite cualquier carácter que esté entre los indicados.
[^abc]: ^ al principio de los corchetes indica negación: se admite cualquier caracter que no esté entre los indicados.
[0-9]: se admiten sólo dígitos.
[A-Z]: se admiten sólo letras en mayúsculas.
[a-z]: se admiten sólo letras en minúsculas.
[A-z]: se admiten sólo letras en mayúsculas o minúsculas.
-----------------------------
REPETICIONES
*: el carácter se encuentra o no, pudiéndose repetir un número indeterminado de veces.
+: el carácter debe existir, pudiéndose repetir un número indeterminado de veces.
?: el carácter puede o no existir, una sola vez.
{n}: el carácter se repite el número de veces especificado entre las llaves.
{n,m}: el carácter se debe repetir un número de veces, entre el mínimo y máximo indicados.
---------------------------------------
CARACTERES PERMITIDOS
\d: admite dígito.
\D: admite cualquier carácter alfabético, no numérico.
\f: se encuentra un salto de página.
\n: se encuentra un salto de línea.
\s: se admiten referentes a espacios, como un espacio en blanco o tabulador.
-----------------------------------------------------------------
EJEMPLOS:
$patron01 = "/gratis/i"; // Busca 'gratis' (en mayúsculas o minúsculas)
$patron02 = "/^[a-zA-Z\s]*$/"; // La cadena sólo puede contener letras y espacios
$patron03 = "/^\d{2}\/\d{2}\/\d{4}$/"; // La cadena es una fecha válida

$patron_tfno = "/^[0-9]{3}\-[0-9]{3}\-[0-9]{3}$/";
$patron_nif = "/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}\-[a-zA-Z]$/";

$cadena = "927-222-222";
if (preg_match($patron_tfno, $cadena))
echo "Es un formato de teléfono válido<br>";
else
echo "ERROR: NO es un formato de teléfono válido<br>";

if (preg_match($patron_nif, $cadena))
echo "Es un formato de NIF válido<br>";
else
echo "ERROR: NO es un formato de NIF válido<br>";
---------------------------------------------------------------------
Para poder añadir la barra de las etiquetas html en un patrón es poniendo delante \
$cadena = "<div>Hola mundo</div>";
$patron_html = "/<\/div>/i";
if (preg_match($patron_html, $cadena))
echo "Sí tiene un div<br>";
else
echo "NO tiene un div<br>";
--------------------------------------------------------
Si queremos que aparte de decirnos si contiene el patrón nos devuelva un array con todos los elementos encontrados sería con preg_match_all:

$patron = '/[0-9]{2}(\/|\-)[0-9]{2}(\/|\-)[0-9]{2}/';
$cadena = '18/01-85 26/01/92';
preg_match_all($patron, $cadena, $salida, PREG_SET_ORDER);
print_r($salida);
---------------------------------------------------------------

Validar un email con una expresión regular
  if (preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/', $email))
      echo "SI";
  else
     echo "NO";
---------------------------------
 Interesante:
http://web.ontuts.com/snippets/10-expresiones-regulares-imprescindibles-en-desarrollo-web/

No hay comentarios:

Publicar un comentario