¿Cómo pruebo una cadena que contiene un carácter al principio, luego un espacio y lo que viene después, que podría ser un número entero o flotante?
Ejemplo:
'$ 15'
'$ 15.95'
/\$\s[\d]*\.[\d]{2}|\$\s[\d]*[^.]/gm
$space(endless digits until)period and exactly-2digits |OR $space(endless digits-no periods) const rgx = /\$\s[\d]*\.[\d]{2}|\$\s[\d]*[^.]/gm; const str = `\$ 15.95 \$ 5 \$ 2.00 \$ 6.90 \$ 1101`; let matches = [...str.matchAll(rgx)].flat(); console.log(matches);Creo que podría ayudarte: ^\$ [+-]?[0-9]{1,}(\.[0-9]{1,}){0,1} , puedes probarlo aquí: https ://regex101.com/
^\$ : comienza con un carácter[+-]? luego agregue signos opcionales[0-9]{1,} luego agregue al menos un dígito(\.[0-9]{1,}){0,1} luego agregue un punto y al menos un dígitoPuedes usar la siguiente expresión regular:
. \d+(?:.\d+)?
Pruébelo aquí: https://regex101.com/r/1oqIO8/1