Estoy aprendiendo JS y quiero saber cuál es la forma más eficiente de extraer valores enteros de cadenas como la siguiente:
const String1 = '122,730 views' const String2 = '2,990 likes'Producción:
122730 2990 ¿Existe una función JS para eliminar todos los valores excepto los numéricos de una cadena? En este caso, parseInt() solo devolvería 122 y 2 .
La función JavaScripts parseInt() no conoce ningún separador de miles.
Simplemente puede reemplazarlos de antemano.
const String1 = '122,730 views'; const Value1 = parseInt(String1.replace(/,/g, "")); console.log(Value1);Puedes intentar usar Regex así:
const regex = /[0-9+]/gm; const str = `122,730 views`; let m; while ((m = regex.exec(str)) !== null) { // This is necessary to avoid infinite loops with zero-width matches if (m.index === regex.lastIndex) { regex.lastIndex++; } // The result can be accessed through the `m`-variable. m.forEach((match, groupIndex) => { console.log(`Found match, group ${groupIndex}: ${match}`); }); }PD: Siento no haber comentado, pero es imposible, debido a mi baja reputación.
function retnum(str) { var num = str.replace(/[^0-9]/g, ''); return parseInt(num, 10); } console.log('122,730 views'.replace(/[^0-9]/g, '')); console.log(retnum('122,730 views'));