Necesito ayuda con mi código js regex.
El texto:
9. El estadounidense promedio camina de 3000 a 4000 pasos al día.
Desde el elemento de inspección:
<h3 id="the-average-american-walks-3000-to-4000-steps-a-day"> <span>9.</span> The average American walks 3,000 to 4,000 steps a day. </h3>Mi salida:
El estadounidense promedio camina de 3 a 4 pasos al día.
Rendimiento esperado:
El estadounidense promedio camina de 3000 a 4000 pasos al día.
Mi código:
$(".round-number") .find("h3") .each(function (i, el) { let row = $(el).text().replace(/(\s+)/g, " "); row = $(el) .text() .replace(/[0-9]+. /g, "") .trim(); console.log(`${row}`); healthArray.push(row); });Si desea eliminar solo una aparición del número, no necesita una bandera g en la expresión regular.
Luego, si siempre está al comienzo de la oración, puede usar el símbolo ^ para asegurarse de que las expresiones regulares solo busquen al comienzo de la cadena
También necesitas escapar . símbolo cuando lo usa en expresiones regulares, así - \. , de lo contrario, regexp lo lee como "cualquier" símbolo.
Y lo último, trim antes de aplicar expresiones regulares.
Ejemplo:
$("h3").each(function (i, el) { const row = $(el) .text() .trim() .replace(/^[0-9]+\. /, ""); console.log(`${row}`); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <h3 id="the-average-american-walks-3000-to-4000-steps-a-day"> <span>9.</span> The average American walks 3,000 to 4,000 steps a day. </h3>