我有这样的字符串:
<span class="label label-danger">€ -185,00</span>
我尝试使用js转换为:-185,00。
这就是我的所作所为:
x = x.replace(/[^\d\,-]/g, "");
x = parseFloat(x.replace(/,/, '.'));
它接近工作,但采取&#34; - &#34;班级&#34;标签危险&#34;所有正数变为负数,负数变为NaN( - 185)。
如何仅删除第一个&#34; - &#34;正则表达式的字符串?
答案 0 :(得分:0)
如果您不喜欢RegEx,您可以使用纯JS,如:
var y = parseFloat(x.split("€")[1].split("<")[0]);
console.log(y); // -185
答案 1 :(得分:0)
试试这个:
<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`
答案 2 :(得分:0)
首先使用javascript DOM获取元素
var string = document.getElementsByClassName("label label-danger")innerHTML;
然后使用javascript parseInt()
函数将该字符串转换为整数
您可以通过创建执行所有内容的功能来执行此任务
答案 3 :(得分:-1)
如果您想提取数字,那么您可以使用以下代码段
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