JASoft.org

Encontrar caracteres acentuados y emojis con expresiones regulares en JavaScript

Encontrar caracteres acentuados y emojis con expresiones regulares en JavaScript
Como digo siempre aquí y en todas partes, las expresiones regulares son una de las herramientas más útiles que podemos aprender como programadores (y sin ser programadores). Les puedes sacar partido para casi cualquier cosa que se te ocurra que involucre cadenas de texto, y no sólo programando. El problema que tienen es que son muy "anglosajonas" (como casi todo en este mundillo) y hay cosas que no hacen bien por defecto si usas caracteres que no sean anglosajones. En este detallado artículo te cuento qué opciones tienes para manejar expresiones regulares más complejas que tengan en cuenta letras acentuadas, alfabetos extranjeros como el japonés o el ruso, símblos, emojis... y todo tipo de caracteres Unicode. [Más]

JavaScript: cómo acceder y modificar pseudo-elementos como ::after y ::before

JavaScript: cómo acceder y modificar pseudo-elementos como ::after y ::before
Acceder a un elemento del DOM con JavaScript es muy sencillo. Mientras esté definido en el HTML tiene un elemento JavaScript correspondiente en el DOM y hay métodos para acceder a ellos. Sin embargo, cuando se trata de un pseudo-elemento, al tratarse de elementos ficticios, la cosa cambia por completo. No somos capaces de acceder a ellos de manera directa y presentan además otros retos. En este artículo vamos a ver qué son estos pseudo-elementos, como podemos acceder a sus propiedades para leerlas o modificarlas y cómo podemos usar un "hack" para modificar una propiedad especial que, en principio, no es posible modificar. [Más]

Intl: la API de localización nativa de JavaScript

Intl: la API de localización nativa de JavaScript
Como seguramente ya tengas claro, la traducción y la localización son conceptos relacionados pero muy distintos. Para traducir tu aplicación basada en Web mucho me temo que no te queda más remedio que usar archivos de lenguaje de algún tipo y alguna biblioteca especializada. Sin embargo para la localización, es decir, la adaptación de la aplicación a las particularidades de cada idioma, todo lo que necesitas viene incluido con tu navegador. Para casi todas las tareas comunes relacionadas con la localización de aplicaciones, JavaScript nos proporciona ayuda integrada y no vamos a necesitar utilizar bibliotecas externas que añaden complejidad, peso y que además con toda seguridad no serán tan buenas como el sistema operativo para estos menesteres. Vamos a conocer cómo sacarle partido... [Más]

Creando diálogos y pop-ups nativos con HTML: El elemento "dialog" de HTML 5.2

Creando diálogos y pop-ups nativos con HTML: El elemento "dialog" de HTML 5.2
Una necesidad común en casi cualquier aplicación Web es la de mostrar diálogos al usuario. Se trata de los típicos "pop-ups" que surgen en la aplicación de vez en cuando con múltiples propósitos: notificaciones, preguntar algo al usuario, mostrar los detalles de un registro en una base de datos... Casi cualquier cosa que se te pueda ocurrir. Crear algo como esto mediante el uso de capas y un poco de JavaScript no es muy complicado, pero tiene bastantes "pegas". Por eso el W3C, encargado de los estándares Web, definió en HTML 5.2 un nuevo elemento específicamente pensado para esta tarea: <dialog> y que tiene muchas aplicaciones. Vamos a ver cómo sacarle todo el partido. [Más]

Expresiones regulares en JavaScript (y otros lenguajes): búsquedas anticipadas y retrasadas

Expresiones regulares en JavaScript (y otros lenguajes): búsquedas anticipadas y retrasadas
Como ya he dicho en muchas otras ocasiones, en mi opinión las expresiones regulares son una de las herramientas más potentes que puede aprender un programador, y no solo para programar ya que sirven también en muchos entornos y herramientas. Hoy me voy a detener a explicar con detalle el funcionamiento de una característica potente e infrautilizada de las expresiones regulares y que muchos programadores no entienden bien por lo que he podido comprobar. Se trata de las búsquedas anticipadas (lookahead asssertions en inglés) y las búsquedas retrasadas (lookbehind asssertions en inglés), que colectivamente se suelen denominar "Búsquedas alrededor" (del inglés lookaround asssertions). [Más]

JavaScript: por qué obtengo fechas diferentes por consola y por pantalla

JavaScript: por qué obtengo fechas diferentes por consola y por pantalla
Hoy una curiosidad rápida y simple pero puede que de interés, surgida a partir de la pregunta de un alumno y que tiene que ver con la manera de gestionar la misma información que tienen los navegadores dependiendo de si se hace en la interfaz de usuario o en la consola, la cual además puede variar de un navegador a otro. Tiene poca incidencia práctica, pero puede ser interesante... [Más]

Expresión regular para detectar caracteres repetidos

Expresión regular para detectar caracteres repetidos
Las expresiones regulares son uno de los mejores inventos de la historia de la programación. Yo las uso para todo. El problema de las expresiones regulares es que, aunque lo básico es sencillo, pueden llegar a ser muy fastidiadas. Hay algunas que, para calcularlas, de entrada pueden parecer muy simples pero que te puede llevar horas dar con ellas. Son casi un lenguaje de programación en si mismas 😊 Otra cosa que hay que saber es que Internet está lleno de páginas con información equivocada o directamente errónea sobre expresiones regulares. En este post analizo detalladamente la construcción de una expresión regular que parece sencilla de entrada, pero que requiere dominar varias cosas importantes que no son tan evidentes para la mayoría. [Más]

visibilityEvents.js: detectar cuándo un elemento se muestra o se oculta en una página

visibilityEvents.js: detectar cuándo un elemento se muestra o se oculta en una página
Una cuestión que puede resultar muy útil en una página o aplicación web es la posibilidad de detectar cuándo aparece o desaparece de la pantalla un elemento determinado debido a las acciones del usuario. Por ejemplo, si desaparece una pieza de información importante porque el usuario hace scroll moviendo los contenidos, podemos sacar una nota resumen, recordatorio o acceso directo para ir verla de nuevo, y ocultarlo de nuevo cuando vuelva a aparecer. Cosas por el estilo. Esta funcionalidad no se incluye nativamente en HTML/JavaScript. He desarrollado una biblitoeca JavaScript que añade eventos a la página para detectar los cambios de visibilidad de cualquier elemento. [Más]

TRUCO - Depuración con Chrome: convertir archivos JavaScript en "cajas negras" para evitar depurarlos

TRUCO - Depuración con Chrome: convertir archivos JavaScript en "cajas negras" para evitar depurarlos
Cuando estamos depurando paso a paso, poniendo puntos de interrupción en ciertas líneas para luego ir ejecutando el código instrucción por instrucción, no tiene mucho sentido que, de repente, se nos abra el código fuente de algunas bibliotecas estándar que están muy probadas y son robustas (jQuery, lodash, Angular, Vue...), pues no vamos a depurarlo. Y mucho menos si lo estamos usando ya minimizado y listo para producción, puesto que encima no veremos gran cosa tampoco. Vamos a ver cómo hacer que el depurador de Chrome se salte archivos completos que no nos interesa depurar, ahorrando tiempo y ganando productividad. [Más]

JavaScript tiene dos valores para el número cero, y no son iguales aunque lo parezcan

JavaScript tiene dos valores para el número cero, y no son iguales aunque lo parezcan
Pues sí: aunque estamos acostumbrados a pensar que en JavaScript tenemos un valor para el número 0 y este es el único que hay, en realidad es interesante conocer qué existen dos valores diferentes para el número 0 y que no son el mismo ni se obtienen de la misma manera. De hecho esto ocurre en la mayor parte de los lenguajes de programación ya que utilizan el estándar IEEE 745 para representar números, por lo que se comportan de la misma manera. En la práctica pocas veces veremos que este hecho nos impacte pero, aparte de ser un tema muy interesante, en algunas aplicaciones y algoritmos (sobre todo si involucran a las matemáticas) es importante conocer esta distinción. Te la cuenta en este artículo que pensé en escribir muy rápido pero al final se ha ido extendiendo más de la cuenta, como siempre 😉 [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico