用javascript提取字符串的特定部分

时间:2017-07-17 22:03:20

标签: javascript regex parsing

首先,我知道很多像这样的问题之前已经被问过了,但是我很难用正则表达式来解决这个问题,所以请尽量解释一下。

我有一个不断变化的字符串,它是:TOKEN (SwapToken) - 1005.00000127 TOKEN

只有数字更改,它可能会变化到1005.000001281500.001,我已经创建了一个程序来在需要时提取字符串。唯一的事情是,我需要隔离/提取数字,或者提取字符串,然后创建另一个只包含数字的变量。

编码看起来会有所不同,因为这个数字会有变化吗?我怎么能完成只提取数字? Regex是最好的选择,我知道可能还有其他几个。

谢谢

1 个答案:

答案 0 :(得分:7)

这是一个可以使用的简单正则表达式

/\d+\.\d+/g

虽然它会对您的输入做出假设。主要是其中没有任何东西看起来像十进制数字。

\ d表示任何数字(0 - 9)
\。表示字面时间(。)
+表示一个或多个前面的字符

你需要反斜杠,因为在正则表达式中。意味着匹配任何角色,所以你必须逃避它。

这个特殊的正则表达式通过查找看起来像一个或多个数字后跟“。”的任何内容来查找看起来像十进制数字的任何内容。后跟一个或多个数字。

let str = "TOKEN (SwapToken) - 1005.00000127 TOKEN"

let num = str.match(/\d+\.\d+/g)[0];

console.log(parseFloat(num))

这是一个可以测试正则表达式的网站。它有一些简洁的功能。并解释你的正则表达式在右侧做了什么

https://regex101.com/r/8RuY3A/1