首先,我知道很多像这样的问题之前已经被问过了,但是我很难用正则表达式来解决这个问题,所以请尽量解释一下。
我有一个不断变化的字符串,它是:TOKEN (SwapToken) - 1005.00000127 TOKEN
只有数字更改,它可能会变化到1005.00000128
或1500.001
,我已经创建了一个程序来在需要时提取字符串。唯一的事情是,我需要隔离/提取数字,或者提取字符串,然后创建另一个只包含数字的变量。
编码看起来会有所不同,因为这个数字会有变化吗?我怎么能完成只提取数字? Regex是最好的选择,我知道可能还有其他几个。
谢谢
答案 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))
这是一个可以测试正则表达式的网站。它有一些简洁的功能。并解释你的正则表达式在右侧做了什么