/ Android

Expresiones Regulares Para JavaScript y Android

Las expresiones regulares son patrones utilizados para encontrar una determinada combinación de caracteres dentro de una cadena de texto, como por ejemplo que en un campo de tipo texto se acepten solo letras o números.

Estas expresiones regulares son muy utilizadas a la hora de validar formularios.

En este artículo vamos a ver el uso de expresiones regulares tanto en JavaScript como en Android.

Uso de expresiones regulares en JavaScript

HTML

En este ejemplo validaremos que el campo de texto acepte solo números de lo contrario podríamos mandar un mensaje de error.

Si desean ampliar su conocimiento y realizar sus propias expresiones regulares, visiten el siguiente artículo sobre Expresiones Regulares.

<form>
	<input type="text" id="campo_numero" placeholder="Ingresar un número">
	<button id="validar_js">Validar JS</button>
	<button id="validar_jquery">Validar jQuery</button>
	<p id="respuesta">...</p>
</form>

Expresión regular

//Almaceno la expresión regular en una variable
var regex_numeros = /^[0-9]+$/;

Uso

Acá tienes el código para implementarlo tanto en JavaScript nativo y utilizando la librería jQuery.

JavaScript nativo

<script>
	function validarCampoJs(){
		var validarJs = document.getElementById('campo_numero');
		var respuesta = document.getElementById('respuesta');
		//Aquí empleamos la expresión regular
		if((regex_numeros).exec(validarJs.value)){
			respuesta.innerHTML = 'Validación correcta JS';
		}else{
			respuesta.innerHTML = 'Validación incorrecta JS';
		}
	}
	var botonValidarJs = document.getElementById('validar_js');
	botonValidarJs.addEventListener('click', function(event){
		event.preventDefault();
		validarCampoJs();
	});
</script>

jQuery

<script>
	$(function() {
		$('#validar_jquery').click(function(event) {
			event.preventDefault();
			var validarJquery = $('#campo_numero');
			var respuesta = $('#respuesta')
			//Aquí empleamos la expresión regular
			if(validarJquery.val().match(regex_numeros)){
			  respuesta.text('Validación correcta jQuery');
			}else{
			  respuesta.text('Validación incorrecta jQuery');
			}
		});
	});
</script>

Uso de expresiones regulares en Android

Vamos a ver el mismo ejemplo que el anterior pero aplicado en una app Android.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="15dp"
    tools:context="com.a01luisrene.tutoriales.ui.ExpresionesRegularesActivity">

    <EditText
        android:id="@+id/et_campo_numero"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Ingrese un número"
        android:inputType="text" />

    <Button
        android:id="@+id/bt_validar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Validar"
        android:textAllCaps="false" />
</LinearLayout>

Código Android

public class ExpresionesRegularesActivity extends AppCompatActivity implements View.OnClickListener {
    TextView etCampoNumero;
    Button btValidar;
    //Almaceno la expresión regular en una constante
    //Nota: las expresiones regulares se almacenan sin las barras /
    public static final String REGEX_NUMEROS = "^[0-9]+$";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_eventos_entrada);
        //Realizamos el casting para el TextView, Button
        etCampoNumero = (TextView) findViewById(R.id.et_campo_numero);
        btValidar = (Button) findViewById(R.id.bt_validar);
        //Evento clic
        btValidar.setOnClickListener(this);

    }
    //Función para validar el campo de texto
    public void validarCampo(){
        Pattern patron = Pattern.compile(REGEX_NUMEROS);
        String stCampoNumero = etCampoNumero.getText().toString().trim();
        if(patron.matcher(stCampoNumero).matches()){
            Toast.makeText(this, "Validación correcta", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this, "Validación incorrecta", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bt_validar:
                validarCampo();
                break;
        }
    }
}

Algunas expresiones regulares

Bueno como ya saben como usar las expresiones regulares tanto en JavaScript y Android, les voy a compartir algunas expresiones regulares para que lo prueben e implementen en sus proyectos.

También los recomiendo esta página para que puedan probar y crear sus propias reglas de expresiones regulares.

Visitar RegExr


Esta expresión regular nos permite ingresar solo letras tanto mayúsculas como minúsculas, espacios en blanco y caracteres latinos.

JavaScript

var regex_letras = /^[a-zA-ZáÁéÉíÍóÓúÚñÑüÜ\s]+$/;

Android

public static final String REGEX_LETRAS = "^[a-zA-ZáÁéÉíÍóÓúÚñÑüÜ\\s]+$";

Esta expresión regular sirve para validar correos electrónicos validos, ejemplo del formato: cerounoluisrene@gmail.com

JavaScript

var regex_email = /^[a-zA-Z0-9\._-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,4}$/;

Android

public static final String REGEX_EMAIL ="^[a-zA-Z0-9\\._-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,4}$";

Expresión regular para validar fechas, ejemplo del formato: 04/11/2017.

JavaScript

var regex_fechas = /^([012][1-9]|3[01])(\/)(0[1-9]|1[012])\2(\d{4})$/;

Android

public static final String REGEX_FECHAS = "^([012][1-9]|3[01])(\/)(0[1-9]|1[012])\2(\d{4})$";

Expresión regular para validar números telefónicos de 9 dígitos.

JavaScript

var regex_num_celular = /^[0-9]{9}$/;

Android

public static final String REGEX_NUM_CELULAR = "^[0-9]{9}$";

Expresión regular para validar DNI (Documento Nacional de Identidad) Perú.

JavaScript

var regex_dni = /^[0-9]{8}$/;

Android

public static final String REGEX_DNI = "^[0-9]{8}$";

Expresión regular para validar URL Uniform Resource Locator (Localizador Uniforme de Recursos), ejemplo del formato: https://01luisrene.com.

JavaScript

var regex_url = /^(http|https|ftp)+\:+\/\/+(www\.|)+[a-z0-9\-\.]+([a-z\.]|)+\.[a-z]{2,4}$/;

Android

public static final String REGEX_URL = "^(http|https|ftp)+\:+\/\/+(www\.|)+[a-z0-9\-\.]+([a-z\.]|)+\.[a-z]{2,4}$";

Expresión regular para validar los números de una tarjeta Visa, ejemplo del formato: 4214-1001-3630-9826

JavaScript

var regex_visa = /^4[0-9]{3}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}$/;

Android

public static final String REGEX_VISA = "^4[0-9]{3}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}$";

Bueno amigos si hay alguna duda o sugerencia me lo hacen saber por los comentarios.

Luis Rene Mas Mas

Luis Rene Mas Mas

Hola, soy desarrollador Frontend, me encanta las tecnologías web, mi pasatiempo favorito es administrar este blog.

Leer Más