正则表达式帮助,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
我有这样的字符串:
<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