Regex帮助,JS尝试将字符串(html)转换为数字

Regex help, JS try to converting a string(html) to number

本文关键字:html 转换 数字 字符串 帮助 JS Regex      更新时间:2023-09-26

我有一个这样的字符串:

<span class="label label-danger">€ -185,00</span>

我尝试用js转换为:-185,00 .

我是这样做的:

x = x.replace(/[^'d',-]/g, "");
x = parseFloat(x.replace(/,/, '.'));

它接近于工作,但取类"label-danger"的"-",所有正数变为负数,负数变为NaN(—185)。

如何删除只有第一个"-"的字符串与正则表达式?

如果你不喜欢RegEx,你可以使用纯JS,如:

var y = parseFloat(x.split("€")[1].split("<")[0]);
console.log(y); // -185

试试这个:

<span(.*?)>([^'d]*)(-|'+){0,1}([-'d,]*)<'/span>

Group 3: (-|'+){0,1}: optional You get: `-`      
you get the sign here - or + or nothing(whic means plus)
Group 4.    ([-'d,]*) `185,00`

第一个使用javascript DOM获取元素

var string = document.getElementsByClassName("label label-danger")innerHTML;

然后使用javascript parseInt()函数将该字符串转换为整数

你可以通过创建一个函数来完成这个任务

如果您想提取数字,那么您可以使用以下代码段

console.log('<span class="label label-danger">€ -185,00</span>'.match(/[-+]?'d+(?:,'d+)+/)[0]);
console.log('$  +1,23,400'.match(/[-+]?'d+(?:,'d+)+/)[0]);

输出:

-185,00
+1,23,400