Archivos de Categoría: Javascript - Paginas 6

Dar estilo a palabra dentro de un texto

Por necesidades del cliente, resulta que quiere que siempre que aparezca su marca en la web, la pongamos con un estilo específico. El cliente tiene un CMS por el que podría hacerlo pero dice que prefiere que la aplicación lo haga automáticamente por lo que ha tocado preparar una función donde pasamos un selector de jquery y busca en su contenido la palabra para asignarle el estilo. A ver que os parece:

function estiloMarca(selector){
    regex = new RegExp("LA MARCA", 'gi');

    $(selector).each(function () {
        this.innerHTML = this.innerHTML.replace(regex, function(matched) {return "<span class=\"estiloMarca\">" + matched + "</span>";});
    });    
}

reemplazar con una expresión regular

Si alguna vez has tenido que reemplazar ciertos caracteres en una cadena de texto, lo normal es picar y hacerlo así:

 

'cadena a reemplazar los espacios por guiones bajos'.replace(' ', '_');

Y en ese caso te llevarás la sorpresa de que solo te ha sustituido el primer espacio en blanco. Lo que tienes que hacer es utilizar una expresión regular para que reemplace en todos los espacios:


'cadena a reemplazar los espacios por guiones bajos'.replace(/ /g,'_');

Formateando un número en javascript

Esta vez toca formatear un número de javascript calculado de una operación para pintarlo en una capa.



var _total = ($(this).val() * $(this).attr('data-precio')).toFixed(2).toString().replace(".",",").replace(/\B(?=(\d{3})+(?!\d))/g, "."); 


Explicandolo por partes:

($(this).val() * $(this).attr(‘data-precio’)) sería el resultado numérico que queremos formatear
.toFixed(2) como es un precio en euros, rellenamos con ceros los dos decimales en caso de no tenerlos
.toString() lo convertimos en una cadena de texto
.replace(«.»,»,») sustituimos los puntos por comas (los números en javascript usan el punto como separados de decimales y nosotros queremos que use la coma)
.replace(/\B(?=(\d{3})+(?!\d))/g, «.») en caso de tener millares, le metemos el punto de los miles

Sencillito y en una línea, que más se puede pedir