Artículos
wForms

Control alfanumérico en formularios con wForms

Creado: 13/Ago/2007 Actualizado: 26/Dic/2024

Si ayer escribíamos como «Validar que un campo del formulario es alfabético con wForms» hoy vamos a ver como hacerlo para campos alfanumericos.

Es código es muy poco y de una forma rápida conseguiremos nuestro objetivo. Una vez cargada la librería wForms simplemente tendremos que utilizar la clase validate-alphanum required en nuestro campo de entrada.

La línea de código sería la siguiente:

<input type="text" class="validate-alphanum required">

Para que los mensajes de alerta al usuario no salgan en inglés podemos modificar los campos
wFORMS.behaviors[’validation’].errMsg_alphanum y wFORMS.behaviors[’validation’].errMsg_notification. El primero para mostrar el texto de alerta ante un error de contenido alfanumérico y el segundo para el error general a la hora de hacer el envío del formulario.

<script type="text/javascript">
wFORMS.behaviors['validation'].errMsg_alphanum = "Solo se pueden utilizar caracteres alfanumericos [a-z 0-9]";
wFORMS.behaviors['validation'].errMsg_notification = "%% error(s) detectado(s). El formulario no se enviará.nPor favor, chequea la información suministrada."; // %% will be replaced by the actual number of errors
</script>

Visualizar el ejemplo | Descargar el código

wForms

Validar que un campo del formulario es alfabético con wForms

Creado: 12/Ago/2007 Actualizado: 16/Dic/2025

Si queremos validar que un campo de un formulario es alfabético, las librerías wForms nos serán de gran ayuda. Estas, nos permitirán mediante pocas líneas de código conseguir esta validación.

Lo primero será cargar las librerías wForms. Para ello deberemos de añadir en la cabecera de nuestra página HTML la siguiente línea de código:

<script type="text/javascript" src="wforms.js"></script>

Ahora simplemente tendremos que utilizar la clase «validate-alpha required» en el campo de input sobre el que queramos realizar la validación alfabética.

El campo del formulario nos quedaría de la siguiente forma:

<input type="text" class="validate-alpha required">

Solo nos quedará un pequeño detalle, ya que, por defecto, el mensaje de error nos saldrá en inglés.

The text must use alphabetic characters only (a-z, A-Z). Numbers are not allowed.

Pero wForms nos permitirá parametrizar este mensaje. Para ello tenemos la propiedad wFORMS.behaviors[‘validation’].errMsg_alpha, a la cual podemos dar el texto que más nos interese.

Finalmente nos quedará el siguiente código:

<script type="text/javascript">
wFORMS.behaviors['validation'].errMsg_alpha = "Solo se pueden utilizar caracteres alfabéticos [a-z A-Z]";
wFORMS.behaviors['validation'].errMsg_notification = "%% error(s) detectado(s). El formulario no se enviará.nPor favor, chequea la información suministrada."; // %% will be replaced by the actual number of errors
</script>

Por cierto, con wFORMS.behaviors[‘validation’].errMsg_notification parametrizamos el mensaje general del formulario si se produce cualquier error.

Visualizar el ejemplo | Descargar el código

Artículos
Java

Conectarnos a una base de datos con JDBC

Creado: 10/Ago/2007 Actualizado: 08/Jun/2015

El objetivo de nuestro ejemplo es el de ver qué tenemos que hacer para crear una conexión JDBC con Java sobre una base de datos y ejecutar una consulta.

Las tres clases que manejaremos en nuestro ejemplo serán Connection para realizar la conexión a la base de datos, PreparedStatement que será la que contenga la sentencia SQL y ResultSet que será la que contenga el resultado.

Lo primero que tenemos que saber para realizar la conexión a la base de datos es donde se encuentra dicha base de datos. Para hacer referencia a la base de datos lo podemos hacer directamente mediante la IP o, por ejemplo, mediante una referencia ODBC.

Así, podríamos tener referencias como:

jdbc:db2:10.0.1.10:50000/BD1 (referencia directa)
jdbc:odbc:BD1 (referencia por ODBC)

Una vez conocemos la localización de nuestra base de datos debemos de saber el nombre de la clase que tiene implementada la conexión a la base de datos. Es lo que llamamos driver. Dependiendo de la forma en la que este implementado el driver, este, recibirá el apelativo de driver tipo1, tipo2, tipo3 o tipo4.

Si nos ponemos a escribir código, lo primero que debemos de hacer es instanciar la clase del driver.

Class.forName(sDriver).newInstance();

Dicha clase será la que nos proporcione una conexión a la base de datos, y como bien hemos dicho, la conexión la guardaremos en una instancia de la clase Connection.

con = DriverManager.getConnection(sURL);

Un vez que hemos conseguido una conexión a la base de datos lo siguiente será el preparar una sentencia SQL en un PreparedStatement. No haremos nada complicado con el SQL, algo así como…

stmt = con.prepareStatement("SELECT titulo FROM libros");

Construida nuestra sentencia, realizamos la ejecución de la misma. Y el resultado al ResultSet.

rs = stmt.executeQuery();

Un ResultSet no deja de ser una especie de matriz (filas x columnas) que deberemos de recorrer mediante el movimiento de un cursor. Y la forma más fácil en Java es mediante un bucle while. Y para acceder a las columnas bastará con utilizar los métodos getXXX del ResultSet: getString() para las cadenas de texto, getDouble() para los decimales, getDate() para las fechas,……

while (rs.next())
   System.out.println (rs.getString("titulo"));

Una vez que hemos finalizado el cometido de nuestro ejercicio deberemos de cerrar las conexiones a la base de datos. Para ello invocaremos el método close() sobre los tres objetos mencionados.

Y en todo este proceso, las excepciones. No nos debemos de olvidar de ellas. A tal respecto deberemos de ejecutar nuestro código en un bloque try-catch que controle la SQLException. Excepción común que se produce en el acceso a la base de datos.

El código podría quedar como el que sigue:

try {
  Class.forName(sDriver).newInstance();    
  con = DriverManager.getConnection(sURL);

  try {

    // La Query
    stmt = con.prepareStatement("SELECT titulo FROM libros");
    rs = stmt.executeQuery();
	   
    // Recorremos el resultado
    while (rs.next())
      System.out.println (rs.getString("titulo"));

    } catch (SQLException sqle) { 
      System.out.println("Error en la ejecución:" 
            + sqle.getErrorCode() + " " + sqle.getMessage());    
}

Código Fuente

Descárgate el código fuente de Conectarnos a una base de datos con JDBC
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Java

Obtener el nombre de un Host

Creado: 09/Ago/2007 Actualizado: 08/Jun/2015

En este ejemplo vamos a obtener el nombre de un host a partir de una IP. Lo primero que haremos será instanciar la clase InetAddress. Esta clase del paquete java.net es la que contiene toda la información sobre una IP.

La clase InetAddress la instanciaremos mediante el método .getByName(IP), que recibe la IP como parámetro.

Una vez que tenemos los datos cargados en la clase InetAddress simplemente tendremos que invocar el método .getHostName() que nos devolerá una cadena con el nombre del host perteneciente a dicha IP.

El código será el siguiente:

InetAddress addr = InetAddress.getByName("69.89.27.203");
String hostname = addr.getHostName();

Hay que tener en cuenta que hay que controlar la excepción UnknownHostException. Es por ello que el código tendremos que ponerlo en medio de una estructura try-catch.

try {
	InetAddress addr = InetAddress.getByName("69.89.27.203");
	String hostname = addr.getHostName();
} catch (UnknownHostException e) {}

Código Fuente

Descárgate el código fuente de Obtener el nombre de un Host
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Java

Obtener la IP de un Host

Creado: 08/Ago/2007 Actualizado: 02/Jun/2015

Para obtener la dirección IP de una maquina lo primero que debemos de hacer es construir una clase InetAddress a partir de una URL. Esta clase la encontraremos en el paquete java.net. Ejemplos de URL serían www.lineadecodigo.com, www.google.com, www.w3api.com,…

Para instanciar la clase utilizaremos la función getByName(sURL) a la cual pasaremos como parámetro una cadena de caracteres que contenga la URL de la cual queremos conocer su dirección IP.

Una vez construida la clase InetAddress invocaremos el método getAddress el cual nos devolverá un array de bytes de cuatro posiciones. Cada una de las posiciones contiene en codificación binaria el número correspondiente a la mascara de la IP A.B.C.D. Como sabemos dichos números pueden estar en el rango 0..255

Ahora viene el paso «más lioso». Java no entiende de números sin signo a si que en un byte están codificados los números 0 a 128 como enteros y 129 a 255 como negativos equivaliendo, estos, a -1 a -127. En resumidas cuentas que el -1 equivale al 255 y el -127 al 129. De tal manera que tenemos todo el rango de números del 0 al 255.

Una primera solución a nuestro problema es usar el operador condicional()?:. Si el numero es positivo lo dejamos tal cual, si es un número negativo le sumamos 256, para obtener el número real. De esta manera, la solución nos quedaría algo así.

Para el primer numero.

int numero;
numero = (arrayBytes[0]<0)?arrayBytes[0]+256:arrayBytes[0];

Una buena solución. Ahora tenemos en cuenta de que lo vamos a dejar en una cadena de caracteres. Usemos el toString.....

String numero;
numero = (arrayBytes[0]<0)?Integer.toString(arrayBytes[0]+256):Integer.toString(arrayBytes[0]);

Todo esto en un bucle para recorrer los 4 números.

String numero;

for (int x=0; x < arrayBytes.length; x++) {
  numero += (arrayBytes[x]<0)?Integer.toString(arrayBytes[x]+256):Integer.toString(arrayBytes[x]);
}

Se nos olvidaban los puntos de la dirección... Antepondremos un punto a todos los números menos al primero, es decir, al 0.

String numero;

for (int x=0; x < arrayBytes.length; x++) {
  if (x > 0) {
    numero += ".";
  } 
   numero += (arrayBytes[x]<0)?Integer.toString(arrayBytes[x]+256):Integer.toString(arrayBytes[x]);
}

Pues parece que ya esta todo....... Pero veamos una última cosa. Especialmente dedicada a los amantes de los bytes o a aquellas personas donde la ejecución de un programa varía .0010 sg a .0200 sg ........ puro manejo de bits.

Si queremos que a una ristra de bits con signo le desaparezca el bit del signo (el primero de todos). Le aplicamos el operador & con un número igual de bits ( en este caso 8 ) de tal manera que el operador desaparece a la izquierda.

El bucle quedaría de la siguiente forma.....

String numero;

for (int x=0; x < arrayBytes.length; x++) {
  if (x > 0) {
    numero += ".";
  }
  numero += arrayBytes[x] & 255;
}

Código Fuente

Descárgate el código fuente de Obtener la IP de un Host
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Javascript

Función Replace en JavaScript

Creado: 07/Ago/2007 Actualizado: 21/May/2015

La función replace de JavaScript nos permite realizar sustituciones dentro de cadenas de texto de grupos de caracteres. La sintaxis de la función replace en JavaScript es la siguiente:

Cadena.replace(CadenaABuscar,NuevaCadena)

Así, podríamos realizar la siguiente sustitución:

var frase = "Son tres mil trescientos treinta y tres con nueve";
frase = frase.replace("tres","dos");
alert(frase);

En este caso, la primera coincidencia se sustituye dentro de la cadena. Es decir, la frase «Son tres mil trescientos treinta y tres con nueve» quedaría como «Son dos mil trescientos treinta y tres con nueve».

Para poder realizar sustituciones más complejas hay que indicar que la función replace en JavaScript admite que el parámetro CadenaABuscar sea una expresión regular.

De esta forma podríamos tener la siguiente sustitución:

var frase = "Son tres mil trescientos treinta y tres con nueve";
frase3 = frase.replace(/[aiou]/gi,'e');
alert(frase3);

Lo que estamos diciendo con la expresión regular es que cualquier carácter del conjunto a, i, o y u, sea sustituido por el carácter ‘e’. Nos devolvería «Sen tres mel tresceentes treente y tres cen neeve»

Además, detrás de la expresión regular estamos utilizando un modificador. En este caso gi. Esto significa que la búsqueda es global, es decir, busca todas las coincidencias que puedan existir a lo largo de toda la cadena (modificador g) y que no es sensible a mayúsculas (modificador i).

Por lo tanto, si volvamos a nuestro primer ejemplo y lo que queremos es que se sustituyan todos los ‘tres’ por ‘dos’, deberíamos de utilizar el siguiente código:

var frase = "Son tres mil trescientos treinta y tres con nueve";
 frase4 = frase.replace(/dos/gi,'nueve');
alert(frase4);

Espero que el ejemplo sea de utilidad…

El anterior contenido de este post se ha desplazado a Implementarnos la función replace de JavaScript Puedes ver la Desambiguación sobre la función replace de JavaScript.

Código Fuente

Descárgate el código fuente de Función Replace en JavaScript
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Javascript

Disfruta también de nuestros artículos sobre Javascript en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Javascript

¿Te atreves a probar tus habilidades y conocimiento en Javascript con nuestro test?

Test Javascript
Artículos
Java

Convertir una cadena a minúsculas en Java

Creado: 06/Ago/2007 Actualizado: 02/Jun/2015

Muchas veces nos surge la necesidad de transformar cadenas de texto. Esto se debe a que las suele introducir el usuario o nos las envían sistemas terceros de los cuales desconocemos su formato.

Uno de los métodos que nos ofrece el API Java para poder tratar estas cadenas es .toLowerCase(), que aplicado sobre una cadena de texto la transforma en minúsculas.

Es por ello que el código a utilizar sea muy sencillo.

String sCadena = "Esto Es Una Cadena De TEXTO"; 
System.out.println(sCadena.toLowerCase());

El método tiene una variante que nos permite jugar con el Locale, ya que si no le indicamos nada se convertirá utilizando el Locale por defecto de la máquina donde se ejecute el código.

Código Fuente

Descárgate el código fuente de Convertir una cadena a minúsculas en Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Java

Listar los drivers con JDBC

Creado: 05/Ago/2007 Actualizado: 02/Jun/2015

El API JDBC propone un interface estándar de acceso a bases de datos. Los vendedores de bases de datos implementan dicho interface. Para ello lo que hacen es crear drivers.

Por lo tanto el driver son el conjunto de clases que implementar el interface JDBC para una determinada base de datos.

Ejemplos de drivers serian:

  • MySQL – com.mysql.jdbc.Driver
  • Oracle – oracle.jdbc.driver.OracleDriver
  • DB2 – COM.ibm.db2.jdbc.app.DB2Driver
  • SQLServer – com.microsoft.jdbc.sqlserver.SQLServerDriver
  • Genérico de ODBC – sun.jdbc.odbc.JdbcOdbcDriver

En la página http://developers.sun.com/product/jdbc/drivers permite buscar drivers de diferentes vendedores por tipo de driver (1,2,3 o 4), nombre de vendedor, compatibilidad con j2ee 1.2, 1.3 o 1.4, por las características del driver: si tiene pool de conexiones, si tiene datasource,…

En nuestro ejemplo vamos a listar que drivers están precargados en el entorno de ejecución. Además mostraremos la versiones del driver, así como si es un driver esta certificado en la compatibilidad JDBC de SUN.

Lo primero que haremos será precargar algunos drivers. Para tener salidas en nuestro programa. Ya que nadie nos asegura que exista alguno precargado.

La forma de cargar un driver mediante programación es cargando su clase mediante la clase Class.

String sDriver = "com.mysql.jdbc.Driver";
String sDriver2 = "sun.jdbc.odbc.JdbcOdbcDriver";

Class.forName(sDriver).newInstance();
Class.forName(sDriver2).newInstance();

Ahora utilizaremos el DriverManager para interrogarle qué drivers están precargados. El método .getDrivers() nos devolverá un listado de drivers. La abstracción del driver está reflejada en la clase Driver.

DriverManager.getDrivers();

Diferentes métodos de Driver nos dará la información relativa al mismo.

Driver driver = (Driver)e.nextElement();
System.out.println("Nombre: " + driver.getClass().getName());
System.out.println("Version: " + driver.getMajorVersion());
System.out.println("Release: " + driver.getMinorVersion());
   
if (driver.jdbcCompliant())
  System.out.println("Es un dirver JDBC Compliant");
else
  System.out.println("NO es un driver JDBC Compliant");

Código Fuente

Descárgate el código fuente de Listar los drivers con JDBC
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Javascript

Saber si la tecla Shift esta pulsada con Javascript

Creado: 04/Ago/2007 Actualizado: 21/May/2015

La tecla shift la utilizamos normalmente para poner teclas en mayúscula. Si bien, existen otros usos como el de hacer múltiples selecciones de elementos. En estos casos mantenemos dicha tecla pulsada mientras elegimos los elementos.

Hay que pensar que no siempre vamos a enfrentarnos a un formulario con una selección múltiple donde el propio navegador gestiona si está la tecla shift pulsada. Pueden presentarsenos situaciones donde queramos proporcionar la selección de múltiples elementos (por ejemplo, imágenes, capas,…) y tengamos que codificarnos, nosotros mismos, el control de la selección múltiple.

Para ello podemos apoyarnos en JavaScript y detectar si está la tecla shift pulsada y actuar en consecuencia.

Lo primero que tenemos que hacer es elegir sobre que evento vamos a realizar el control. En nuestro caso lo vamos a realizar cuando se produzca un click del ratón. Esto es el evento onmousedown.


La función que se lanzará será estaPulsadoShift, la cual esta recibiendo el objeto event como parámetro. Este objeto tiene toda la información relativa al evento que se ha producido, es decir, al click del ratón.

La propiedad, del objeto event, que tiene la información relativa a si la tecla shift estaba pulsada o no, es shiftKey. Si su valor es igual a 1, entonces significará que la tecla Shift estaba pulsada.

Si codificamos esto en JavaScript, nos quedaría el siguiente código:

function estaPulsadoShift(event){
if (event.shiftKey==1)
    alert("La tecla shift está presionada");
else
    alert("La tecla shift no está presionada");
}

Poco código y de mucha utilidad.

Código Fuente

Descárgate el código fuente de Saber si la tecla Shift esta pulsada con Javascript
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Javascript

Disfruta también de nuestros artículos sobre Javascript en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Javascript

¿Te atreves a probar tus habilidades y conocimiento en Javascript con nuestro test?

Test Javascript
Artículos
Java

Listar un conjunto

Creado: 03/Ago/2007 Actualizado: 02/Jun/2015

En el siguiente ejemplo se muestra cómo volcar el contenido de un conjunto de datos (HashSet). Los conjuntos tienen la propiedad de que no pueden albergar nunca dos elementos con el mismo valor.

Lo primero que hacemos es cargar el conjunto…

Set hs = new HashSet();
hs.add("Victor");
hs.add("Amaya");
hs.add("Amaya"); // Los elementos solo pueden estar una vez
hs.add("Javier");

Notese que cargamos un elemento repetido (Amaya). Al volcar el contenido del conjunto veremos que dicho elemento solo aparece una vez.

Lo siguiente será conseguir un iterador sobre el conjunto…

Iterator iter = hs.iterator();

Solo nos quedará dicho iterador para volcar el contenido. Moveremos el iterador mediante el método .next().

while (iter.hasNext())
	System.out.println(iter.next());

Código Fuente

Descárgate el código fuente de Listar un conjunto
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java