正则表达式帮助,JS 尝试将字符串(html)转换为数字

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

我有这样的字符串:

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

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

我就是这样做的:

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

它接近工作,但取 class "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