TransWikia.com

Problemas con expresiones regulares en JavaScript

Stack Overflow en español Asked on January 5, 2022

Estoy tratando de buscar los números dentro de un string, cuando lo hago solo me trae el último número de ese string.

var exp = string.match(':d*[0-9],');

Lo que trato de hacer es buscar los números que van despues del caracter : y antes de , pero no me sale bien

var string = 'Caja_cebolla X100 :1.5, Caja_tomate :2, Caja_cebollin :0.25'; // Busco que me tome los números que estan delante de : y antes de ,
var exp = string.match(':d*[0-9],');
console.log(exp);

Básicamente busco los números después de : y antes de ,. Ejemplo:

En Caja_cebolla X100 que me tome el número 1.5

One Answer

  1. La expresión regular siguiente, busca que inicie con dos puntos :, en seguida un digito d que contenga o no un punto decimal +(.d{1,2})? para finalizar busca todas las coincidencias con /g.
  2. Usamos los dos puntos como ancla para que no choque con el X100, posteriormente eliminamos los dos puntos haciendo un mapeo del arreglo devuelto y remplazando por "vacío".
  3. No se puede usar la coma al final, ya que no todos los valores tienen una.

Espero te funcione!

var string = 'Caja_cebolla X100 :1.5, Caja_tomate :2, Caja_cebollin :0.25';
var exp = string.match(/:d+(.d{1,2})?/g).map(e => e.replace(':',''));
console.log(exp);

Answered by Saul Moreyra on January 5, 2022

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP