正则表达式用连接点和连字符提取数字

时间:2016-12-01 13:27:01

标签: javascript regex regex-negation

假设我有以下字符串:

<div style="color: red; display.: inline-block;"><i class="fa fa-arrow-down" aria-hidden="true"></i> -18.9%</div>

想要提取的是 -18.9

我目前在javascript中有[^ 0-9 .-] + 但是这将包括字符串中的每个点和连字符,所以我需要的东西只提取逗号和连字符后跟一个数字。

要清除,点和连字符可能存在也可能不存在,有时候不是html

2 个答案:

答案 0 :(得分:0)

听起来你正在处理一个似乎是从HTML中获取的字符串。如果是这种情况,并且您无法获得var tempEl = document.createElement('div'); tempEl.innerHTML = '<div style="color: red; display.: inline-block;"><i class="fa fa-arrow-down" aria-hidden="true"></i> -18.9%</div>'; var myNumber = parseFloat(tempEl.children[0].innerText.trim()) 属性,则有2个选项。

<强> 1。转换为HTML并使用innerText

-18.9

将导致数字

-

<强> 2。正则表达式 此正则表达式将匹配以/(-)?\d+(\.\d*)*/g 开头的字符串,后跟整数或十进制数

<div style="color: red; display.: inline-block;"><i class="fa fa-arrow-down" aria-hidden="true"></i> -18.9%</div>

使用您的示例:

-18.9

将导致匹配

quit()

这里是demo

答案 1 :(得分:-1)

这是简单的正则表达式 [-0-9]+.?[0-9]